我有一個使用了幾個組的MongoDB的聚合操作:如何使用MongoDB聚合框架來統計滿足特定條件的組的數量?
{ $group: { "_id": { "vid": "$visitor_id", "pid":"$project.id" } } }
{ $group: { "_id": "$_id.vid", "count": { $sum: 1} } }
返回以下數據:
{
"results": [
{
"_id": "user1",
"count": 1
},
{
"_id": "user2",
"count": 2
},
{
"_id": "user3",
"count": 1
}
]
}
我怎麼能去超過1返回用戶總數項目(count
字段)。在這種情況下,它會是這樣的:
{
total: 1
}
因爲只有user2
有超過1個項目(count
> 1)。
我嘗試添加下面的一組操作不得要領:
{
$group: {
"_id": null,
count: {
$sum: {$cond: [{$gt: ['$_id.count', 1]}, 1, 0]}
}
}
}
任何想法?
難道你不能像**'$ match' **運算符那樣只是有一個最終的聚合管道步驟來過濾計數,即'{「$ match」:{「count」:{「$ gt」 :1}}}'? – chridam