2016-04-28 6 views
0

Ich habe eine Sammlung von Dokumenten, die jeweils eine Reihe von Einnahmen von verschiedenen Längen enthalten.
Ich möchte ein einzelnes Ertragsfeld aus den Werten erhalten, die der Abfrage entsprechen.Wie summiere ich Arrays aus verschiedenen Dokumenten in der MongoDB-Aggregation?

Beispieldaten

... 
{"cohort": "2112", "revenue": [1, 1, 0, 0, 5], ...}, 
{"cohort": "2113", "revenue": [0, 0, 2, 0], ...}, 
{"cohort": "2114", "revenue": [0, 1, 3], ...} 
... 

Erwartetes Ergebnis für Kohorten 2113 und 2114

[0, 1, 5] or [0, 1, 5, 0] 

Die beiden Ergebnisse für meine Zwecke gleich sind, da ich die Länge des kürzesten Array kennen.
Gibt es eine Möglichkeit, die Operation mit MongoDB-Aggregat-Pipeline durchzuführen?
Oder können Sie eine bessere Lösung vorschlagen?

Und ja, ich benutze PyMongo, um auf die Datenbank zuzugreifen.

Antwort

Verwandte Themen