我有包含用户活动数据(活动类型)的MongoDB集合,我想将活动分为两组并返回活动计数。
集合看起来像这样(还有一些其他字段,例如日期等):
{"userID": 1, "activity": "reading"}
{"userID": 1, "activity": "sleeping"}
{"userID": 1, "activity": "hiking"}
{"userID": 1, "activity": "sleeping"}
{"userID": 1, "activity": "biking"}
我想进行汇总,以返回分组的多个活动的计数,例如。我想将“远足”和“骑自行车”分组为“娱乐”,“睡眠”和“阅读”分组为“休息”,然后将自选定日期以来指定用户的活动计数分组:
"recreation": 2
"resting": 3
我所做的就是匹配userID
并date
$gte
得到了用户的选择和周期,试图计数的所有活动,$sum
,$project
,但它不能得到正常工作。
谢谢!
你可以用$group
与$cond
[
{
$group: {
_id: "$userID",
recreation: {
$sum: {
$cond: [
{
$or: [
{$eq: ["$activity","hiking"]},
{$eq: ["$activity","biking"]}
]
},
1,
0
]
}
},
resting: {
$sum: {
$cond: [
{
$or: [
{$eq: ["$activity","sleeping"]},
{$eq: ["$activity","reading"]}
]
},
1,
0
]
}
}
}
}
]
工作蒙戈游乐场
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句