首页 > 解决方案 > 如何在 mongodb 中像 SQL 一样编写 sum(if a>=10 and a<=100,a,0)

问题描述

我想制作select sum(if a >= 10 and a <= 100, a, 0) from tableMongoDb.

因此,我写道:

{
    "$project": {
        "sumqty": {
            "a1": {
                "$cond": {
                    "if": {
                        "$and": [{"$gte":["$a",10]},
                                 {"$lte":["$a",100]}]
                     },
                     "then": "$a",
                     "else": 0
                 }
             }
         }
     }
}

标签: mongodb

解决方案


只需使用$cond$group

db.table.aggregate([{
  $group: {
    _id: null,
    totalSum: {
      $sum: {
        $cond: [{ $and: [{ $gte: ["$a", 10] }, { $lte: ["$a", 100] }] },
          "$a",
          0
        ]
      }
    }
  }
}])

推荐阅读