Node.js 如何使用mongoose保存嵌套文档
我最近开始研究猫鼬,我被困在一个问题上。 我要保存的数据类型如下所示Node.js 如何使用mongoose保存嵌套文档,node.js,mongodb,mongoose,mongoose-schema,Node.js,Mongodb,Mongoose,Mongoose Schema,我最近开始研究猫鼬,我被困在一个问题上。 我要保存的数据类型如下所示 { ObjectId('abcd') allData, parentId:null, // super parent level's parent id is always null children:[ { ObjectId('xyz') allData, parentId:ObjectId('abcd'),// id of parent
{
ObjectId('abcd')
allData,
parentId:null, // super parent level's parent id is always null
children:[
{
ObjectId('xyz')
allData,
parentId:ObjectId('abcd'),// id of parent
children:[
{
allData,
parentId:ObjectId('xyz'),// id of parent
children:[
{
... // nested levels can be N number of times
}
]
}
]
}
]
}
在上面的数据中,只有一个模型在所有嵌套级别递归使用。
那么,mongoose中是否有任何方法可以用来一次性保存上述类型的数据。i、 e在一次呼叫中,我需要添加上述数据及其所有子级别。解决方案
做到这一点的最佳有效方法是,
只需以正常形式保存文档,然后在数组中为它们提供parentId或children的id
我在下面举了一个例子,以便你们能理解
使用ParentId变量:
使用ChildrenId数组变量:
ObjectId('abcd')
allData,
parentId:null,
ObjectId('xyz')
allData,
parentId:ObjectId('abcd'),
ObjectId('xyz-new')
allData,
parentId:ObjectId('abcd'),
ObjectId('abcd')
allData,
childrens:[ObjectId('xyz'),ObjectId('xyz-new')],
ObjectId('xyz')
allData,
childrens:[],
ObjectId('xyz-new')
allData,
childrens:[],