Mongoose使用多个子路径填充路径

Mongoose使用多个子路径填充路径,mongoose,mongoose-populate,mongoose-schema,Mongoose,Mongoose Populate,Mongoose Schema,假设我有以下模型: # MODEL A schemaA = mongoose.Schema _bId: type: mongoose.Schema.Types.ObjectId ref: "B" # MODEL B schemaB = mongoose.Schema _cId: type: mongoose.Schema.Types.ObjectId ref: "C" _dId: type:

假设我有以下模型:

# MODEL A
schemaA = mongoose.Schema
    _bId:
        type: mongoose.Schema.Types.ObjectId
        ref: "B"

# MODEL B
schemaB = mongoose.Schema
    _cId:
        type: mongoose.Schema.Types.ObjectId
        ref: "C"
    _dId:
        type: mongoose.Schema.Types.ObjectId
        ref: "D"

# MODEL C
schemaC = mongoose.Schema
    _eId:
        type: mongoose.Schema.Types.ObjectId
        ref: "E"
模型D和E没有任何其他对象引用,因此为了方便起见不再列出

用所有引用填充模型“A”的最佳实践是什么? 目前,我按如下方式解决此任务(这是一个实例方法,因为我经常需要它):

这是我发现的填充所有引用的唯一方法,因为在不同的模型中填充多个路径是相当困难的。我已经尝试过下面的解决方案,但可以想象,它只会覆盖以前的人群:

 @
 .populate
     path:  "_bId"
     model: "B"
     populate:
         path: "_cId"
         model: "C"
         populate:
             path: "_eId"
             model: "E"
 .populate
     path:  "_bId"
     model: "B"
     populate:
         path: "_dId"
         model: "D"
这个解决方案非常有效,我刚刚发现了这一点

 @
 .populate
     path:  "_bId"
     model: "B"
     populate:
         path: "_cId"
         model: "C"
         populate:
             path: "_eId"
             model: "E"
 .populate
     path:  "_bId"
     model: "B"
     populate:
         path: "_dId"
         model: "D"
   @
    .populate
        path:  "_bId"
        model: "B"
        populate: [
            {
                path: "_cId"
                model: "C"
                populate:
                    path: "_eId"
                    model: "E"
            }
            {
                path: "_dId"
            }
        ]
    , (error) =>