जब तक आप ठीक से जानते हैं कि आप क्या करना चाहते हैं, तब तक आप स्रोत दस्तावेज़ों से गणना की जा सकने वाली किसी भी चीज़ द्वारा समूह में एकत्रीकरण का उपयोग कर सकते हैं।
आपकी दस्तावेज़ सामग्री और नमूना आउटपुट के आधार पर, मैं अनुमान लगा रहा हूं कि आप दो दिन के अंतराल से योग कर रहे हैं। यहां बताया गया है कि आप अपने सैंपल डेटा पर इसे आउटपुट करने के लिए एग्रीगेशन कैसे लिखेंगे:
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 में स्ट्रिंग्स के लिए अपनी तिथियों को प्रतिस्थापित करें और वैकल्पिक रूप से आप केवल उन दस्तावेज़ों पर काम करना शुरू करने से पहले फ़िल्टर कर सकते हैं जो पहले से ही पूरी रेंज में हैं जिन्हें आप एकत्र कर रहे हैं।