ang*_*okh 1 mongodb mongodb-query aggregation-framework
我正在尝试按用户和电子邮件进行分组,并且仅输出小计> 1。我尝试了此操作,但编译失败。
db.member.aggregate(
{"$group" : {
_id : {user:"$user", email: "$email"},
count : { $sum : { if: { $gte: [ "$sum", 1 ] }, then: 1, else: 0 }
} } } )
Run Code Online (Sandbox Code Playgroud)
您不必尝试将所有内容都放入一个$group
阶段中。它是一个聚合“管道”,应该这样使用。就在$match
最后的a:
db.member.aggregate([
{ "$group": {
"_id": { "user": "$user", "email": "$email" },
"count": { "$sum": 1 }
}},
{ "$match": { "count": { "$gte": 1 } } }
])
Run Code Online (Sandbox Code Playgroud)
无论如何,它基本上是必需的,因为“首先”你积累,然后你过滤。很像SQL 中的GROUP BY
and HAVING
。
另请参阅核心文档中的SQL 到聚合映射图表以获取常见示例。
归档时间: |
|
查看次数: |
2533 次 |
最近记录: |