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

एक सीमा पर MongoDB एकत्रीकरण

जब तक आप ठीक से जानते हैं कि आप क्या करना चाहते हैं, तब तक आप स्रोत दस्तावेज़ों से गणना की जा सकने वाली किसी भी चीज़ द्वारा समूह में एकत्रीकरण का उपयोग कर सकते हैं।

आपकी दस्तावेज़ सामग्री और नमूना आउटपुट के आधार पर, मैं अनुमान लगा रहा हूं कि आप दो दिन के अंतराल से योग कर रहे हैं। यहां बताया गया है कि आप अपने सैंपल डेटा पर इसे आउटपुट करने के लिए एग्रीगेशन कैसे लिखेंगे:

var range1={$and:[{"$gte":["$date","2014-07-07"]},{$lte:["$date","2014-07-08"]}]}
var range2={$and:[{"$gte":["$date","2014-07-09"]},{$lte:["$date","2014-07-10"]}]}
db.range.aggregate(
    {$project:{
         dateRange:{$cond:{if:range1, then:"dateRange1",else:{$cond:{if:range2, then:"dateRange2", else:"NotInRange"}}}},
         value:1}
    }, 
    {$group:{_id:"$dateRange", sum:{$sum:"$value"}}}
)
{ "_id" : "dateRange2", "sum" : 45 }
{ "_id" : "dateRange1", "sum" : 49 }

रेंज 1 और रेंज 2 में स्ट्रिंग्स के लिए अपनी तिथियों को प्रतिस्थापित करें और वैकल्पिक रूप से आप केवल उन दस्तावेज़ों पर काम करना शुरू करने से पहले फ़िल्टर कर सकते हैं जो पहले से ही पूरी रेंज में हैं जिन्हें आप एकत्र कर रहे हैं।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. स्प्रिंग बूट + MongoDB आईडी क्वेरी

  2. नोडज में डेटा सिंक्रनाइज़ेशन के लिए सर्वोत्तम अभ्यास

  3. मोंगोस में सशर्त क्वेरी कैसे बनाएं?

  4. MongoDB एकत्रीकरण को गति दें

  5. JWT के साथ फेसबुक-पासपोर्ट