我有这种结构的文件
{
"name" : "John David",
"accounts" : [
{
"zone" : "ABX",
"payments" : [
{
"units" : 109,
"price" : 965
},
{
"units" : 144,
"price" : 425
}
],
"conn_status" : "connected",
}
]}
我想修改“支付”数组对象之一,并执行以下查询,用一个(更新)对象替换现有的“支付”对象的整个集合
db.user.update({"accounts.zone":"ABX","accounts.payments":{"units":109,"price":965}},{$set:{"accounts.$.payments":{units:111,price:443}}})
能否请您提出更新单个文档,使其他文档保持完整的最佳方法?
答案 0 :(得分:0)
尝试一下,这应该可以:
db.user.update({"accounts.zone":"ABX"},{$set:{"accounts.$[].payments.$[doc]":{units:111,price:443}}},{ arrayFilters: [ { "doc": {"units":109,"price":965} } ], multi: true})
希望获得帮助。