1

假设我们有一个模式 A,它看起来像:

{ b: { type: Schema.Types.ObjectId, ref: 'B' },

一个 B 型,看起来像:

{ c: { type: Schema.Types.ObjectId, ref: 'C' },

和一个 C 类型,它看起来像:

{ name: String }.

有什么方法可以使用 MongooseJS 的填充实用程序通过多个引用获取文档?在示例中,我们可以通过以下方式找到 A 的 b

A.findOne({ id: someId })
    .populate('b')
    ...

但是我们可以通过 A 到达 b 的 c 吗?

4

2 回答 2

3

不是现在。对此的一些支持即将推出。

于 2012-09-24T20:07:54.180 回答
0

我认为两年后情况发生了变化。下面的 Model.populate() 使用怎么样:

A.findOne({id: someId})
 .populate('b')
 .exec()
 .then(function(data) {
         // returns a promise about populating a.b.c:
         return C.populate(data, {path: 'b.c'});
     });

详细信息可以在 3.6' 发行说明中找到: https ://github.com/LearnBoost/mongoose/wiki/3.6-Release-Notes#added-modelpopulatedocs-opts-cb

于 2014-08-11T14:34:00.100 回答