我正尝试使用计数将分组内的数据分组。在MongoDB中使用聚合框架分组并计数
{
"_id" : ObjectId("59899846b5f5670840040b0b"),
"client_id" : "merlin",
"scope" : "eee",
"user_id" : "u",
"user_directory" : "kmdkcn",
"createdAt" : ISODate("2017-08-08T10:53:58.816Z"),
"open_url" : null,
"__v" : 0
}
{
"_id" : ObjectId("59899849b5f5670840040b0c"),
"client_id" : "merlin",
"scope" : "eee",
"user_id" : "u",
"user_directory" : "kmdkcn",
"createdAt" : ISODate("2017-08-08T10:54:01.908Z"),
"open_url" : null,
"__v" : 0
}
{
"_id" : ObjectId("5989984db5f5670840040b0d"),
"client_id" : "merlin",
"scope" : "eee",
"user_id" : "y",
"user_directory" : "kmdkcn",
"createdAt" : ISODate("2017-08-08T10:54:05.280Z"),
"open_url" : null,
"__v" : 0
}
{
"_id" : ObjectId("5989adb2d699bd211caa07ad"),
"client_id" : "symphony",
"scope" : "eee",
"user_id" : "q",
"user_directory" : "kmdkcn",
"createdAt" : ISODate("2017-08-08T12:25:22.518Z"),
"open_url" : null,
"__v" : 0
}
{
"_id" : ObjectId("5989adb8d699bd211caa07ae"),
"client_id" : "symphony",
"scope" : "eee",
"user_id" : "w",
"user_directory" : "kmdkcn",
"createdAt" : ISODate("2017-08-08T12:25:28.954Z"),
"open_url" : null,
"__v" : 0
}
{
"_id" : ObjectId("5989adbcd699bd211caa07af"),
"client_id" : "symphony",
"scope" : "eee",
"user_id" : "q",
"user_directory" : "kmdkcn",
"createdAt" : ISODate("2017-08-08T12:25:32.753Z"),
"open_url" : null,
"__v" : 0
}
{
"_id" : ObjectId("5989adc0d699bd211caa07b0"),
"client_id" : "symphony",
"scope" : "eee",
"user_id" : "r",
"user_directory" : "kmdkcn",
"createdAt" : ISODate("2017-08-08T12:25:36.176Z"),
"open_url" : null,
"__v" : 0
}
我想要的是在client_id的基础上进一步分组数据,并进一步根据user_id来获取文档的计数。
我曾经尝试这样做: -
Logger.aggregate([
{ "$group": {
"_id": {client: "$client_id"},
"count": { "$sum": 1 }
}}
])
我得到: - 客户:梅林 数:3, 客户端:交响乐, 数:4
但如何分组这个上user_id的基础。
我想最后的结果将是: -
客户端:梅林, 数:2, 客户端:交响乐, 数:3
您的意思是*“每个用户的每个客户端”?* –