首页 > 解决方案 > 单个查询有条件的不同操作 - MongoDb

问题描述

我正在尝试做这样的事情:

是否可以?我可以肯定:

但我不知道如果小于10.

标签: mongodbaggregation-framework

解决方案


  • $cond根据条件应用不同的逻辑
  • $gte检查当前值是否大于等于 10
  • $sum将当前值增加 1
db.collection.update({},
[
  {
    "$set": {
      "counter": {
        "$cond": {
          if: {
            "$gte": [
              "$counter",
              10
            ]
          },
          then: 0,
          else: {
            "$sum": [
              "$counter",
              1
            ]
          }
        }
      }
    }
  }
],
{
  multi: true
})

工作示例


推荐阅读