首页 > 解决方案 > UpdateMany 文档中包含 mongodb 中的对象数组

问题描述

我有一个看起来像这样的 mongodb 集合

[
    {
        pId: "p1",
        apikey: "a2",
        count: 0
    },
    {
        pId: "p2",
        apikey: "a2",
        count: 0
    },
    {
        pId: "p2",
        apikey: "a3",
        count: 0
    }
]

我有一个输入,它是对象数组。我想增加计数。输入对象如下

[
    {
        pId: "p1",
        apikey: "a2"
    },
    {
        pId: "p2",
        apikey: "a2"
    }
]

上面的 2 个输入对象与集合中的前 2 个对象匹配。我通过迭代输入数组来递增。有没有其他方法可以实现这一目标?

标签: javascriptnode.jsarraysmongodbupdates

解决方案


您可以使用条件传递输入项并以 1$or递增,count$inc

let items = [
  { pId: "p1", apikey: "a2" },
  { pId: "p2", apikey: "a2" }
];
db.collection.updateMany({ $or: items }, { $inc: { count: 1 } });

操场


推荐阅读