将嵌套数组填充到第n级

时间:2019-04-23 16:49:37

标签: mongoose

我有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上的几种解决方案,但都没有解决我的问题。

0 个答案:

没有答案