javascript - 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 个对象匹配。我通过迭代输入数组来递增。有没有其他方法可以实现这一目标?
解决方案
您可以使用条件传递输入项并以 1$or
递增,count
$inc
let items = [
{ pId: "p1", apikey: "a2" },
{ pId: "p2", apikey: "a2" }
];
db.collection.updateMany({ $or: items }, { $inc: { count: 1 } });
推荐阅读
- deep-learning - 为什么 1x1 conv 与全连接层相同?
- vector - 在函数中查找最小值和最大值
- vue.js - 如何使用zrender和vue-echarts在条形图上注册点击
- c# - 拖动后如何根据这个控件的值自动设置UserControl的高度和宽度?
- spring - Mockito:如何模拟 WebClient 配置 Bean
- python - 如何检查 Photoshop PSD 文件的嵌入缩略图是否与其内容一致
- ruby-on-rails - 警告:无法保存屏幕截图。page.current_path 为空
- r - 使用 pivot_wider 和 pivot_longer 收集数据有问题(我自己完成了。它已解决。)
- java - 导航回上一个片段时数据重复
- qt - 从 QVariantist 读取值到 qml