【问题标题】:Is it possible to use the MongooseJS' query#populate method recursively?是否可以递归使用 MongooseJS 的 query#populate 方法?
【发布时间】:2012-09-16 05:15:45
【问题描述】:

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

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

一个 B 型,看起来像:

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

还有一个 C 类型,看起来像:

{ name: String }.

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

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

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

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    我认为两年后情况发生了变化。下面的 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

    【讨论】:

      【解决方案2】:

      目前没有。对此的一些支持即将推出。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-03
        • 1970-01-01
        • 2017-12-08
        • 2013-08-26
        • 2021-03-30
        • 1970-01-01
        • 2017-12-08
        • 1970-01-01
        相关资源
        最近更新 更多