如何使用猫鼬保存嵌套文档

时间:2021-05-07 07:42:05

标签: 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
       children:[
       {
          allData,
          parentId:ObjectId('xyz'),// id of parent
          children:[
          {
            ... // nested levels can be N number of times
          }
          ]
         }
       ]
     }
   ]
}

在上述数据中,只有一个模型在所有嵌套级别递归使用。 那么在猫鼬中有什么方法可以用来一次性保存上述类型的数据。即在一次调用中,我需要添加上述数据及其所有子级别。

1 个答案:

答案 0 :(得分:0)

解决方案

最好和最有效的方法是, 只需以正常形式保存您的文档,然后在数组中给他们 parentId 或 children 的 id。

我在下面给出了示例以便您理解。

使用 ParentId 变量:

ObjectId('abcd')
allData,
parentId:null, 


ObjectId('xyz')
allData,
parentId:ObjectId('abcd'), 


ObjectId('xyz-new')
allData,
parentId:ObjectId('abcd'), 

使用 ChildrenId 数组变量:

ObjectId('abcd')
allData,
childrens:[ObjectId('xyz'),ObjectId('xyz-new')], 


ObjectId('xyz')
allData,
childrens:[], 


ObjectId('xyz-new')
allData,
childrens:[],