Mongo查询分组仅输出小于1的小计
问题描述:
我试图按用户和电子邮件进行分组,只输出小计> 1.我试过这个,但是编译失败。Mongo查询分组仅输出小于1的小计
db.member.aggregate(
{"$group" : {
_id : {user:"$user", email: "$email"},
count : { $sum : { if: { $gte: [ "$sum", 1 ] }, then: 1, else: 0 }
} } })
答
你不必尝试和适应一切都变成一个单一的$group
阶段。这是一个聚合“管道”,应该这样使用。而就在一$match
底:
db.member.aggregate([
{ "$group": {
"_id": { "user": "$user", "email": "$email" },
"count": { "$sum": 1 }
}},
{ "$match": { "count": { "$gte": 1 } } }
])
它基本上需要无论如何,因为“第一”你积累,然后进行过滤。很像SQL中的GROUP BY
和HAVING
。
另请参阅SQL To Aggregation Mapping Chart中常见示例的核心文档。