在MongoDB中修改嵌套文档

时间:2019-02-27 06:21:02

标签: node.js mongodb

我有这种结构的文件

    {
    "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}}})

能否请您提出更新单个文档,使其他文档保持完整的最佳方法?

1 个答案:

答案 0 :(得分:0)

尝试一下,这应该可以:

db.user.update({"accounts.zone":"ABX"},{$set:{"accounts.$[].payments.$[doc]":{units:111,price:443}}},{ arrayFilters: [  { "doc": {"units":109,"price":965} } ], multi: true})

希望获得帮助。