6

如果我在 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';
};
4

1 回答 1

3

回答我自己的问题。

我最初想做的是创建一个可用于子文档集合的函数,如:

topdoc.subs.someFn();

但是,我实际上对原始问题中的代码所做的是为子文档本身创建一个函数,如下所示:

topdoc.subs[i].someFn();

这行得通。

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

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

于 2013-04-04T19:26:33.413 回答