Можете да използвате агрегиране, за да групирате по всичко, което може да бъде изчислено от изходните документи, стига да знаете точно какво искате да направите.
Въз основа на съдържанието на вашия документ и примерния резултат, предполагам, че сумирате на интервали от два дни. Ето как бихте написали агрегиране, за да изведете това на вашите примерни данни:
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 и по желание можете да филтрирате, преди да започнете да работите само с документи, които вече са в пълните диапазони, върху които обобщавате.