javascript - mongoose - 是否可以在运行时动态地向模型添加方法?

标签 javascript node.js mongoose

我知道您可以在模式上定义方法和静态

var schema = new mongoose.Schema({});
schema.methods.fn = function(){}

但是在您从模式创建模型之后是否可能?

var model = mongoose.model(schema);

我试过了

model.schema.methods.fn2 = function(){};

但它不起作用。

我想在运行时添加某些方法,因为在运行时唯一重要的是模型,而不是架构,我想知道您是否可以继续以某种方式动态地向模型的内部架构添加方法?

最佳答案

是的,您可以像添加任何其他 javascript 类一样向 Mongoose 模型添加方法。

var Person = mongoose.model('Person', PersonSchema);

Person.prototype.myMethod = function() {
    console.log(this.toString());
}

var bob = new Person({
    name: 'Bob'
});
myModel.myMethod();

请注意,像这样将 javascript 类大写是一个很好的惯例,它让读者清楚地知道它是一个构造函数,应该用 new 调用。

关于javascript - mongoose - 是否可以在运行时动态地向模型添加方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30269420/

相关文章:

javascript - 根据下拉菜单更新隐藏输入

javascript - 如何按 Mongoose 中的字段对记录进行分组?

javascript - 我无法让我的 Angular 应用程序在本地运行

javascript - 谷歌地图在自举 Accordion 中不起作用

javascript - 想要使用相同的 java 脚本代码单击两个不同的按钮来切换 2 个不同的列表

javascript - 如何使用 git 备份我的项目?

javascript - 过滤2个数组

node.js - 如何为单个 mongo nodejs 驱动程序找到连接池的最佳大小

mongodb - 如何从 Mongoose 模型对象中获取集合名称

javascript - Mongoose 4.8.1 poolSize 不会超过 2