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

मैं MongoDB में एक $ मैच में एकत्रीकरण ऑपरेटरों का उपयोग कैसे करूं (उदाहरण के लिए $year या $dayOfMonth)?

जैसा कि आपने पहले ही पाया है, आप उन फ़ील्ड्स पर $match नहीं कर सकते जो दस्तावेज़ में नहीं हैं (यह ठीक उसी तरह काम करता है जो काम ढूंढता है) और यदि आप पहले $project का उपयोग करते हैं तो आप इंडेक्स का उपयोग करने की क्षमता खो देंगे।

इसके बजाय आप क्या कर सकते हैं अपने प्रयासों को इस प्रकार संयोजित करें:

{
    aggregate: 'posts',
    pipeline: [
         {$match: {
             created_date : 
                  {$gte:{$date:'2012-09-01T04:00:00Z'}, 
                  $lt:  {date:'2012-10-01T04:00:00Z'} 
                  }}
             }
         },
         {$group:
             {_id: '0',
              totalComments:{$sum:'$comments'}
             }
          }
    ]
 }

उपरोक्त आपको केवल सितंबर के लिए एकत्रीकरण देता है, यदि आप कई महीनों के लिए एकत्र करना चाहते हैं, तो आप उदाहरण के लिए कर सकते हैं:

{
    aggregate: 'posts',
    pipeline: [
         {$match: {
             created_date : 
                  { $gte:'2012-07-01T04:00:00Z', 
                    $lt: '2012-10-01T04:00:00Z'
                  }
         },
         {$project: {
              comments: 1,
              new_created: {
                        "yr" : {"$year" : "$created_date"},
                        "mo" : {"$month" : "$created_date"}
                     }
              }
         },
         {$group:
             {_id: "$new_created",
              totalComments:{$sum:'$comments'}
             }
          }
    ]
 }

और आपको कुछ इस तरह वापस मिलेगा:

{
    "result" : [
        {
            "_id" : {
                "yr" : 2012,
                "mo" : 7
            },
            "totalComments" : 5
        },
        {
            "_id" : {
                "yr" : 2012,
                "mo" : 8
            },
            "totalComments" : 19
        },
        {
            "_id" : {
                "yr" : 2012,
                "mo" : 9
            },
            "totalComments" : 21
        }
    ],
    "ok" : 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं mongodb का उपयोग करके सरणी के अंदर elemMatch कैसे कर सकता हूं?

  2. PyMongo में MapReduce

  3. डेटाबेस में संग्रह की संख्या की सीमा

  4. Node.js . में सत्र कैसे बनाएं

  5. MongoDB डिज़ाइन - टैग