[
{ "$match": {
"created":{
"$gte": ISODate("2015-07-19T07:26:49.045Z")
},
"created":{
"$lte": ISODate("2015-07-20T07:37:56.045Z")
}
}},
{ "$group:{
"_id":{
"ln":"$l.ln",
"cid":"$cid"
},
"appCount":{ "$sum": 1 }
}},
{ "$group": {
"_id": { "ln":"$_id.ln" },
"cusappCount": { "$sum": 1 }
}},
{ "$sort":{ "_id.ln":1 } }
]
在上面的mongo db查询中,我无法在结果中显示appcount ..我能够显示cusappCount。有人可以帮我这个
答案 0 :(得分:1)
$match
开头是错误的,并没有按照您的想法行事。它只选择" second"语句:
"created":{
"$lte": ISODate("2015-07-20T07:37:56.045Z")
}
因此,您的选择不正确。
以下内容及其他更正:
[
{ "$match": {
"created": {
"$gte": ISODate("2015-07-19T07:26:49.045Z"),
"$lte": ISODate("2015-07-20T07:37:56.045Z")
}
}},
{ "$group":{
"_id": {
"ln":"$l.ln",
"cid":"$cid"
},
"appCount":{ "$sum": 1 }
}},
{ "$group": {
"_id": "$_id.ln",
"cusappCount": { "$sum": "$appCount" },
"distinctCustCount": { "$sum": 1 }
}},
{ "$sort":{ "_id": 1 } }
]
这似乎是你想要做的。
所以你的更早期"计算"然后在更广泛的"分组时传递给$sum
。水平。 "第二" count只适用于" distinct"早期密钥中的项目。
如果你想"保留" " appCount"的值,那么这里的问题是你的"分组"是"带走"显示在的详细程度。因此,对于它是什么,那么这就是你使用"数组"在输出结构中:
[
{ "$match": {
"created": {
"$gte": ISODate("2015-07-19T07:26:49.045Z"),
"$lte": ISODate("2015-07-20T07:37:56.045Z")
}
}},
{ "$group":{
"_id": {
"ln":"$l.ln",
"cid":"$cid"
},
"appCount":{ "$sum": 1 }
}},
{ "$group": {
"_id": "$_id.ln",
"cusappCount": { "$sum": 1 },
"custs": { "$push": {
"cid": "$_id.cid", "appCount": "$appCount"
}}
}},
{ "$sort":{ "_id": 1 } }
]