最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

猫鼬 MongoDB的:如何更新其嵌套4级降低项目?

IT培训 admin 3浏览 0评论

猫鼬/ MongoDB的:如何更新其嵌套4级降低项目?

在我蒙戈数据库中,我有一个这样的树:

-shopping-lists
  |- list
       |-products
           |-item
           |-item
 |- list
           |-products
               |-item
               |-item

我需要找到我更新其购物清单,然后去的产品阵列,发现里面的物品和更新一个属性。我试图立刻解决这个从几个小时,但没有找到任何解决办法。

如何更新其嵌套4级降低项目?

回答如下:

6小时调查后,我找到了答案。对于任何你们,在这里有同样的问题就是答案。

同时增加了新的项目,以父模型,我一直只是推动这些项目为纯对象和父模型是这样的:

const Parent = new Schema(
  {
    description: { type: String },
    childrenArray: [Object],
  },
  { timestamps: { createdAt: 'created_at' }, collection: 'shopping-lists' }
);

这个问题在childrenArray,在该模型我宣布这个对象的数组。此更改为ChildrenModel解决了这个问题,因为现在这些项目都保存为猫鼬子文档,我可以接着使用$运营商操作。

新的架构如下:

const Children = new Schema(
  {
    prop1: { type: String, required: true },
    prop2: { type: String, required: true },
    prop3: { type: String },
  },
  { timestamps: { createdAt: 'createdAt' } }
);

const Parent = new Schema(
  {

    description: { type: String },
    products: [ItemSchema],

  },
  { timestamps: { createdAt: 'created_at' }, collection: 'shopping-lists' }
);

现在,我可以很容易地访问这样子文档:

const { name, isOrdered, author, voterIds, _id, listId } = req.body;

Parent.findOneAndUpdate(
    { _id: listId, 'children._id': _id },
    {
      $set: {
        'children.$.isOrdered': true
      }
    },
    (err, doc) => {
      console.log(doc);
    }
  );

猫鼬/ MongoDB的:如何更新其嵌套4级降低项目?

在我蒙戈数据库中,我有一个这样的树:

-shopping-lists
  |- list
       |-products
           |-item
           |-item
 |- list
           |-products
               |-item
               |-item

我需要找到我更新其购物清单,然后去的产品阵列,发现里面的物品和更新一个属性。我试图立刻解决这个从几个小时,但没有找到任何解决办法。

如何更新其嵌套4级降低项目?

回答如下:

6小时调查后,我找到了答案。对于任何你们,在这里有同样的问题就是答案。

同时增加了新的项目,以父模型,我一直只是推动这些项目为纯对象和父模型是这样的:

const Parent = new Schema(
  {
    description: { type: String },
    childrenArray: [Object],
  },
  { timestamps: { createdAt: 'created_at' }, collection: 'shopping-lists' }
);

这个问题在childrenArray,在该模型我宣布这个对象的数组。此更改为ChildrenModel解决了这个问题,因为现在这些项目都保存为猫鼬子文档,我可以接着使用$运营商操作。

新的架构如下:

const Children = new Schema(
  {
    prop1: { type: String, required: true },
    prop2: { type: String, required: true },
    prop3: { type: String },
  },
  { timestamps: { createdAt: 'createdAt' } }
);

const Parent = new Schema(
  {

    description: { type: String },
    products: [ItemSchema],

  },
  { timestamps: { createdAt: 'created_at' }, collection: 'shopping-lists' }
);

现在,我可以很容易地访问这样子文档:

const { name, isOrdered, author, voterIds, _id, listId } = req.body;

Parent.findOneAndUpdate(
    { _id: listId, 'children._id': _id },
    {
      $set: {
        'children.$.isOrdered': true
      }
    },
    (err, doc) => {
      console.log(doc);
    }
  );
发布评论

评论列表 (0)

  1. 暂无评论