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) =>