小编kai*_*liu的帖子

如何在 mongodb 中对布尔字段进行分组?

这是一个非常简单的数据示例。

[
  {
    "aaa": true,
    "bbb": 111,
    
  },
  {
    "aaa": false,
    "bbb": 111,
    
  }
]
Run Code Online (Sandbox Code Playgroud)

那么,应该执行什么查询才能得到这样的结果呢?

[
  {
    "_id": "0",
    "bbb_sum": 222,
    "aaa_and": false,
    "aaa_or": true
  }
]
Run Code Online (Sandbox Code Playgroud)

实际上,我尝试过这样的查询

db.collection.aggregate([
  {
    "$group": {
      "_id": "0",
      "bbb_sum": {
        "$sum": "$bbb"
      },
      "aaa_and": {
        "$and": ["$aaa", true]
      },
      "aaa_or": {
        "$or": ["$aaa", false]
      }
    }
  }
])
Run Code Online (Sandbox Code Playgroud)

但 Mongo Playground 抱怨说query failed: (Location40237) The $and accumulator is a unary operator,这很令人困惑。

您还可以在这里找到这个简单的测试用例https://mongoplayground.net/p/8dqtXJ93vIx

另外,我在 Google 和 Stackoverflow 上搜索过类似的问题,但找不到。

提前致谢!

mongodb

2
推荐指数
1
解决办法
2194
查看次数

标签 统计

mongodb ×1