2016-07-22 5 views
1

i Sammlung verfolgt haben ...Mongo Abfrage 2 Dokumente für 2 Termine aggregieren

[{ 
    "_id":"abcd1234", 
    "Date" :{"$date":1430418601000}, 

    "Count":{ 
     "hr1":0, 
     "hr2":20, 
     "hr3":1, 
     "hr4":4, 
     "hr5":0, 
     } 
}, 
{ 
    "_id":"abcd1234", 
    "Date" :{"$date":1430505001000}, 
    "Count":{ 
     "hr1":2, 
     "hr2":15, 
     "hr3":15, 
     "hr4":0, 
     "hr5":1, 
} 
} 
] 

ich für diese Termine so Gesamtanzahl wie wird zählen aggregieren wollen ...

{"hr1":2, 
"hr2":35, 
"hr3":16,//......so on 
} 

Ist es in Mongodb möglich? Ich habe nicht viel Wissen über Mongo, wenn mich jemand mit dieser Abfrage hilfreich sein wird führen können ...

Antwort

0

Ausführen der folgende Aggregations Pipeline sollten Sie das gewünschte Ergebnis:

db.collection.aggregate([ 
    { 
     "$group": { 
      "_id": null, 
      "hr1": { "$sum": "$Count.hr1" }, 
      "hr2": { "$sum": "$Count.hr2" }, 
      "hr3": { "$sum": "$Count.hr3" }, 
      "hr4": { "$sum": "$Count.hr4" }, 
      "hr5": { "$sum": "$Count.hr5" } 
     } 
    } 
]) 

Angeben ein _id Der Wert null berechnet die kumulierten Werte für alle Eingabedokumente als Ganzes.

+1

danke chridam es funktioniert ... – yog