MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

घटनाओं की गणना करें और एकत्रीकरण के दौरान स्ट्रिंग अक्षरशः डालें

आप इसे इस तरह एकत्रीकरण के साथ कर सकते हैं:

db.user.aggregate([
   {
      $match:{
         $and:[
            {
               timestamp:{
                  $gte: ISODate("2016-10-12T00:00:00.000Z")
               }
            },
            {
               timestamp:{
                  $lt: ISODate("2016-10-13T00:00:00.000Z")
               }
            }
         ]
      }
   },
   {
      $group:{
         _id:"$userId",
         timestamp:{
            $first:"$timestamp"
         },
         send_message:{
            $sum:{
               $cond:[
                  {
                     $eq:[
                        "$event_type",
                        "send_message"
                     ]
                  },
                  1,
                  0
               ]
            }
         },
         clicked_cancel:{
            $sum:{
               $cond:[
                  {
                     $eq:[
                        "$event_type",
                        "clicked_cancel"
                     ]
                  },
                  1,
                  0
               ]
            }
         },
         clicked_ok:{
            $sum:{
               $cond:[
                  {
                     $eq:[
                        "$event_type",
                        "clicked_ok"
                     ]
                  },
                  1,
                  0
               ]
            }
         }
      }
   },
   {
      $project:{
         date:{
            $dateToString:{
               format:"%Y-%m-%d",
               date:"$timestamp"
            }
         },
         userId:1,
         clicked_cancel:1,
         send_message:1,
         clicked_ok:1
      }
   }
])

व्याख्या:

$मिलान . में केवल एक विशिष्ट दिन के लिए दस्तावेज़ रखें मंच

userId द्वारा समूह दस्तावेज़ और $group . में प्रत्येक घटना के लिए घटनाओं की गणना करें मंच

अंत में टाइमस्टैम्प फ़ील्ड को yyyy_MM-dd . में प्रारूपित करें $प्रोजेक्ट . में प्रारूपित करें मंच

आपके द्वारा प्रदान किए गए डेटा के लिए, यह आउटपुट होगा

{
   "_id":"123123123",
   "send_message":0,
   "clicked_cancel":1,
   "clicked_ok":1,
   "date":"2016-10-12"
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. CastError:ObjectId पर कास्ट मॉडल के लिए पथ _id पर मूल्य मार्ग-नाम के लिए विफल रहा

  2. मोंगोडब और पाइमोंगो में खाली स्ट्रिंग का परीक्षण करें

  3. Node.js + MongoDB:एक डालें और नया डाला गया दस्तावेज़ वापस करें

  4. उल्का सदस्यता संग्रह के क्रम को अद्यतन नहीं करता है

  5. क्या MongoDB संपत्ति के नाम को छोटा करना सार्थक है?