我有一个使用mongoose定义的mongodb模式,并且我有一些嵌套在多个级别上的子文档。我希望能够访问另一个模式的虚拟属性中的这些(填充的)子文档,但是我似乎无法这样做。我似乎能够在嵌套的第一级访问文档,但不能进一步访问。
这是我的模式的示例:
const SchemaA = {
name: {type: string}
items: [
{
schemaB: {
type: schema.type.ObjectId,
ref: "B"
}
}
]
}
const SchemaB = {
name: {type: string}
schemaC: {
type: schema.type.ObjectId,
ref: "C"
}
}
const SchemaC = {
types: [{label: {type: String}}]
}
我想做的是从SchemaA的虚拟属性内部访问SchemaC.types。
这是我想要实现的目标:
SchemaA.virtual("types").get(function(){
return this.items.map(item => {
return {name: item.schemaB.name, types: item.schemaB.SchemaC.types}
})
})
从上面的item.schemaB
看来很好,但是item.schemaB.SchemaC
似乎只是schemaC的objectId。
说实话,我不确定这是否可能,但我似乎无法在网上任何地方找到明确的答案,因此我希望这里的人能为您提供帮助。谢谢!
答案 0 :(得分:0)
因此在猫鼬中,您需要使用populate
方法。
.populate({
path: 'schemaB',
populate: {
path: 'schemaC'
}
});