mongodb 中包含对象数组的 UpdateMany 文档

UpdateMany document with array of objects in 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 个对象匹配。 我通过迭代输入数组来递增。 还有其他方法可以实现吗?

您可以在 $or 条件下传递您的输入项,并使用 $inc

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

Playground