【发布时间】:2018-11-13 18:28:01
【问题描述】:
mongoose 是否可以创建一个模式,将其称为文件夹,并且它在称为子文件夹中具有一个属性,该属性是嵌套文件夹子文档的数组?
const mongoose = require('mongoose')
let SubSchema = mongoose.Schema({
name: { type: String, required: true }
})
let FolderSchema = mongoose.Schema({
name: { type: String, required: true },
children: [ SubSchema ]
})
我知道我可以通过引用类似于上面显示的另一个模式将子文档嵌套在一个数组中。不过,我想做的是在其内部重用 FolderSchema。显然这会导致一个问题,因为在创建模式时,FolderSchema 不存在。有一个更好的方法吗?有没有办法使用相同的模式递归嵌套文档?
我知道我可以让数组成为引用集合的 ObjectId 列表,但我希望将其全部嵌套为文档。我想如果我确实 populate() 让它解析文档 ID,那本质上是一样的。只是想知道是否还有其他我不知道的方法。
【问题讨论】: