【发布时间】:2021-04-23 14:09:48
【问题描述】:
我有一个如下所示的 MongoDB 集合:
{user: "1", likes: 111, isEnabled: true},
{user: "1", likes: 222, isEnabled: false},
{user: "2", likes: 333, isEnabled: false},
{user: "2", likes: 444, isEnabled: false},
我想按用户对它们进行汇总,总结喜欢并检查用户的文档之一是否具有“isEnabled”= true(基本上是逻辑或)。
最后我想要这个结果:
{user: "1", allLikes: "333", isAnyEnabled: true},
{user: "2", allLikes: "777", isAnyEnabled: false},
我可以使用group阶段的$sum累加器来总结喜欢。我的问题是似乎没有 group 运算符支持布尔逻辑运算。有没有办法做到这一点?
到目前为止我已经尝试过了
db.myCollection.aggregate([{$match: {
"_id":"$user",
"allLikes": {
"$sum": "$likes"
},
"isAnyEnabled":{"$or":"$isEnabled"}
}}])
但似乎不支持$or:unknown group operator '$or'
【问题讨论】:
标签: mongodb aggregation-framework