猫鼬/ 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);
}
);