我有3个架构模型父母,孩子和玩具。每个父母都有一个孩子,每个孩子也可以有一个孩子和玩具。如何将儿童数组填充到第n级?
父母
Object.values()
孩子
const parentSchema = new Schema({
name: String,
description: String,
children: [{ type: Schema.Types.ObjectId, ref: 'Children' }]
}, {
collection: 'parent'
})
module.exports = Model('Parent', parentSchema)
玩具
const childrenSchema= new Schema({
ancestor: { type: Schema.Types.ObjectId, ref: 'Parent' },
parent: { type: Schema.Types.ObjectId, ref: 'Children' },
name: String,
toys: [
{ type: Schema.Types.ObjectId, ref: 'Toys' }
],
children: [
{ type: Schema.Types.ObjectId, ref: 'Children' }
]
}, {
collection: 'children'
})
module.exports = Model('Children', childrenSchema)
采样结果
const toysSchema= new Schema({
name: String,
description: String,
}, {
collection: 'toys'
})
module.exports = Model('Toys', toysSchema)
是否可以将儿童和玩具填充到第n级?现在,我仅使用硬编码填充,但是当嵌套数组的层次更深时,它无效。我猜除了递归填充或deepPopulate之外,还有其他解决方案吗?我对猫鼬的操作不太熟悉,我也尝试了Web上的几种解决方案,但都没有解决我的问题。