是否有可能recursion地使用MongooseJS的query#填充方法?

假设我们有一个模式A,如下所示:

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

typesB看起来像:

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

和一个typesC,看起来像:

{ name: String }

有没有办法使用MongooseJS的填充工具来通过多个文档获取文档? 在这个例子中,我们可以通过这样做来findA的b

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

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

不是现在。 对此的一些支持即将到来。

我觉得事情从两年改变了。 怎么样下面的Model.populate()使用:

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

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