【发布时间】:2019-05-28 08:33:43
【问题描述】:
我有一个使用 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。
说实话,我不确定这是否可能,但我似乎无法在网上任何地方找到明确的答案,所以我希望这里的人能提供帮助。谢谢!
【问题讨论】:
标签: mongodb mongoose mongoose-schema mongoose-populate