【问题标题】:Mongoose : Find and Update Multiple Nested DocumentsMongoose:查找和更新多个嵌套文档
【发布时间】:2021-02-21 02:26:49
【问题描述】:

我的文件如下。

{
    "order_id" : "1",
    "payment_status" : false,
    "items" : [
        {
            "item_id" : 1,
            "payment_status" : false,
        },
        {
            "item_id" : 2,
            "payment_status" : false,
        },
        {
            "item_id" : 3,
            "payment_status" : false,
        },
    ]
}

我需要为 {"order_id":1}{"item_id" : 1}{"item_id" : 3} 更新字段 payment_status。此外,我需要批量更新相同的匹配条件。这在猫鼬中可能吗?

【问题讨论】:

    标签: node.js database mongodb mongoose


    【解决方案1】:

    你想像这样使用$arrayFilters

    db.collection.updateMany({
      "order_id": "1"
    },
    {
      "$set": {
        "items.$[item].payment_status": true
      }
    },
    {
      arrayFilters: [
        {
          "item.item_id": {
            $in: [
              1,
              3
            ]
          }
        }
      ]
    })
    

    Mongo Playground

    【讨论】:

    • 谢谢。它似乎在 Mongo Playground 中工作。我将在我的代码中检查相同的内容并尽快发布更新
    猜你喜欢
    • 1970-01-01
    • 2021-03-26
    • 2016-10-06
    • 2018-09-10
    • 2014-11-27
    • 2021-01-22
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多