2
  1. 3 つのクエリがあり、これを MongoDB 集計に変更したいと考えています。以下はコードです。

          db.mycollection.count({$and:[$requestB:{$exists:false},[$requestC:{$exists:false}]})
          db.mycollection.count({requestB:{$exists:true}})
          db.mycollection.count({requestC:{$exists:true}})
    
  2. このコードを集計に変更したいのですが、うまくいきませんでした

       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
     } }
     ] );
    
4

1 に答える 1