【发布时间】:2017-06-27 12:04:56
【问题描述】:
我有这 3 个请求:
db.mycollection.count({requestA:{$exists:true}})
db.mycollection.count({requestB:{$exists:true}})
db.mycollection.count({requestC:{$exists:true}})
我只想提出一个请求... 所以我尝试了以下方法:
db.mycollection.aggregate( [
{ $group: {
'_id' : { user_id: '$user_id'},
requestA_count: { $sum: {
$cond: [ {requestA:{'$exists':true}}, 1, 0 ]
} },
requestB_count: { $sum: {
$cond: [ {requestB:{'$exists':true}}, 1, 0 ]
} },
requestC_count: { $sum: {
$cond: [ {requestC:{'$exists':true}}, 1, 0 ]
} },
} },
{ $project: {
_id: 0,
user_id: '$_id.user_id',
requestA_count: 1,
requestB_count: 1,
requestC_count: 1
} }
] );
但我得到了错误:
"errmsg" : "exception: invalid operator '$exists'",
我猜我们不能将 $exists 与 $project 一起使用。
关于好方法的任何提示?谢谢
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework