javascript - 查找和更新嵌套级别

我想查找 quantity 的值并将其更新为 3,其中我的 id 为“5cc6d9737760963ea07de411”

我的数据:

[
    {
        "products" : [ {
                    "id" : "5cc6d9737760963ea07de411",
                    "quantity" : 1,
                    "totalPrice" : 100,
                }, 
                {
                    "id" : "5cc6d9737760963ea07de412",
                    "quantity" : 2,
                    "totalPrice" : 200,
                }
        ],
        "isCompleted" : false,
        "_id" : "5cc7e4096d7c2c1f03570a2f"
    },
    {
        "products" : [{
                    "id" : "5cc6d9737760963ea07de414",
                    "quantity" : 1,
                    "totalPrice" : 100,
                }, 
                {
                    "id" : "5cc6d9737760963ea07de4133",
                    "quantity" : 2,
                    "totalPrice" : 200,
                }
        ],
        "isCompleted" : false,
        "_id" : "5cc7e4096d7c2c1f03570a2f"
    }

]

我试过了:

Schema.findOneAndUpdate({_id: ""},{ "products": {"quantity": 3}})

但它不起作用。

最佳答案

你必须使用 .dot 符号和 $位置运算符在这里

Schema.findOneAndUpdate(
  { "products.id": "5cc6d9737760963ea07de411" },
  { "products.$.quantity": 3 }
)

https://stackoverflow.com/questions/55916265/

相关文章:

linux - 从 bash 提示符和脚本向 docker exec 传递参数

mongodb - 命令以非零退出代码 : Error executing in Docker Co

node.js - Mongoose 复合索引创建字段顺序

c# - 如何将 MongoDB 驱动程序与 C# ASP.NET Core API 框架一起使用?

java - Spring Data Mongodb 的性能问题

node.js - MongoDB 与 Docker "failed to connect to s

node.js - 学习 NodeJS 和 MongoDB Docker 组合

mongodb - 从 mongo db $pull 中删除嵌入文档不起作用

java - Spring - mongodb - 聚合 - 需要 'cursor' 选项

c# - MongoDB 身份验证错误