如何解决单个更新查询可更新单个文档包含子数组文档?
我在数据库中已有一个文档:
计划收集(在数据库中):
{ _id: ObjectId('XXX'),name: 'Plan A',remark: 'YYY',products: [ {name: 'Pdt1',qty: '10'},{name: 'Pdt2',qty: '20'} ]
}
我需要使用下面的产品完全更新到“计划A”文档(无需与数据库中的现有产品匹配):
{ _id: ObjectId('XXX'),remark: 'edited YYY',{name: 'Pdt3',qty: '30'},{name: 'Pdt4',qty: '40'} ]
问题:
是否有一种简单的MongoDB方法来更新现有的“计划A”文档以更新其字段并替换 DB中的所有产品子数组?谢谢
解决方法
如果您要替换整个产品子文档,则可以使用MongoDb 3.6+中的所有$[]
运算符替换
var filter = {
name: 'Plan A'
};
var update = {
$set: {
'products.$[]': [
{name: 'Pdt1',qty: '10'},{name: 'Pdt3',qty: '30'},{name: 'Pdt4',qty: '40'}
]
}
};
var options = {
multi: true
};
db.collection.update(filter,update,options);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。