繁体   English   中英

使用MongoDB和Nodejs创建嵌套的子文档/子元素

[英]Create Nested Sub documents/Sub Elements Using MongoDB and Nodejs

我被困在这里。 基本上,要求是在一个架构中创建一个在其下具有4个子类别级别的类别。 这应该是方法

Category
|
--Sub Category 
  |
  ---Sub Sub-Category(Sub Category Level 1)
     |
     --------Sub Category Level 2
             |
             ------Sub Category Level 3
                   |
                    ------------ Sub Category Level 4

为了更好地理解模式结构的图像:

我已经通过从一个模式创建单独的模块和CURD数据来创建Category和Sub Category。

我可以为“子子类别”创建另一个页面。 但是我认为这可能会变得更加复杂。 如果有人有更好的方法,请帮助我解决我面临的问题。 这是来自ROBOT 3T的数据图像

我的Robo 3T数据类别插入示例:

我的Robo 3T数据子类别示例插入:

请以更好的动态方式帮助我。 谢谢。 :)

我们通过在MongoDB中使用嵌入式/嵌套文档方法找到了解决此问题的方法。 我们要做的是当我们发现

我为类别和子类别创建了两个模块。 对于类别,我曾经创建过函数。

return new Promise(function (resolve, reject) {
let params= JSON.parse(JSON.Stringify(req.body))
categoryModel
        .create(params)
        .then(success => {
           var data = {
              status: 200,
              message: "Record save successfully ",
              data: success
           };
           resolve(data);
        })
        .catch(err => {
           reject(err);
        });
      })

对于子类别,我通过获取类别的ID(取决于您的操作方式,但获取ID进行更新很重要)来使用了update函数。

return new Promise(function (resolve, reject) {
let id = req.body.id;
let params = re

  categoryModel.update({ _id: id}, 
  { $set: { "sub_category.$.name": "sub_category1", 
          "sub_category.$.type": "video" } })
   .then(success => {
           var data = {
              status: 200,
              message: "Record save successfully ",
              data: success
           };
           resolve(data);
        })
        .catch(err => {
           reject(err);
        });
     })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM