首页 > 解决方案 > MongoDB 更新嵌套数组元素

问题描述

我有以下结构:

{
    id: "1",
    invoices: [{ id: "1", balance: 1},{ id: "2", balance: 1}]
},
{
    id: "2",
    invoices: [{ id: "3", balance: 1},{ id: "4", balance: 1}]
}

我得到了一个我不应该更新的发票 ID 列表,其余的我需要将余额更新为 0。

我对 MongoDB 很陌生,并且设法找到了一种方法。

标签: arraysmongodbmongodb-query

解决方案


假设您要更新 ID 1 的所有发票,但 invoice.id 2 除外,试试这个:

db.collection.update(
{ id: "1", "invoices.id": {$ne: 2} },
{
    $set: {
        "invoices.$[]": { balance: 0 }
    }
 }

)


推荐阅读