你能为Mongoose中的子文档定义实例方法吗?

时间:2013-03-14 03:05:11

标签: node.js mongoose

如果我在Mongoose中有一个定义为:

的Schema
var subSchema = new Schema({
  some: String
});

var topSchema = new Schema({
  subs: [subSchema]
});

var topModel = mongoose.model("Top", topSchema);

是否可以为子文档定义实例方法?我尝试了以下(在模型声明之前添加),但它不起作用:

subSchema.methods.someFn = function() { 
  return 'blah';
};

1 个答案:

答案 0 :(得分:3)

回答我自己的问题。

我最初想要做的是创建一个可以在subdocs集合上使用的函数,如:

topdoc.subs.someFn();

但是,我在原始问题中实际使用的代码是为子目录创建一个函数,如:

topdoc.subs[i].someFn();

这很有效。

据我所知,Mongoose不支持为subdocs集合创建函数。

我通过在topSchema中定义一个可以做我想要的方法来解决这个问题。