3 つのクエリがあり、これを MongoDB 集計に変更したいと考えています。以下はコードです。
db.mycollection.count({$and:[$requestB:{$exists:false},[$requestC:{$exists:false}]}) 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: [ {$and: [{$eq: ["$requestB", null]}, {$eq: ["requestC", null]}}}, 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 } } ] );