mongodb - 单个查询有条件的不同操作 - MongoDb
问题描述
我正在尝试做这样的事情:
- 设置
field
为0
if thisfield
is greater than10
orincrement
by1
if not.。
是否可以?我可以肯定:
- 如果
field
等于10
设置0
(使用聚合管道更新),
但我不知道如果小于10
.
解决方案
$cond
根据条件应用不同的逻辑$gte
检查当前值是否大于等于 10$sum
将当前值增加 1
db.collection.update({},
[
{
"$set": {
"counter": {
"$cond": {
if: {
"$gte": [
"$counter",
10
]
},
then: 0,
else: {
"$sum": [
"$counter",
1
]
}
}
}
}
}
],
{
multi: true
})
推荐阅读
- angular - Angular Universal - EmptyError:序列中没有元素
- jquery - 猫头鹰轮播导航倒置
- ruby - 如何使用厨师食谱更新多行文件而不删除原始文件的内容
- java - 如果更新可绘制文件夹,共享首选项不会正确保存可绘制资源 ID
- java - 更改 JLabel 大小时如何动态缩放图像
- python - Pandas:为准备合并,我怎样才能让两个大(130 万行)列的日期/年份格式匹配?
- java - 如何在java中将文本转换为列
- angular - 为什么在我的集成测试中无法获得对 Angular Material 的 mat-chip 的引用?
- java - 使用 Rest Template 对外部网站进行 PUT 调用
- r - 闪亮的情节不会随着输入而改变