这是我的文档结构:
{
"ip_address" : "192.168.133.12",
"timestamp" : "2014-08-28T06:41:24",
"response" : 400,
"uri" : {
"term" : "Something",
"page" : "10",
"category" : "category 10"
}
}
如果我想对单个字段'响应'进行groupby,我将按如下方式进行:
db.collName.aggregate({ $group : {_id : "$response", total : { $sum : 1 }} });
如何按2分组或说3个字段?是否可以将多个字段分组,以便它们形成具有相似值的聚合?
我的意思是这样的:
{
"result" : [
{
"_id" : "responseValue" + "ip_addressValue",
"totaling" : 3
}
],
"ok" : 1
}
答案 0 :(得分:2)
是的,你可以做类似下面的事情
db.collName.aggregate({ $group :
{
"_id" : {"response":"$response", "ip_address":"$ip_address"},
total : { $sum : 1 }
}
});