2016-04-28 11 views
0

私は、それぞれ異なる長さのの収入の配列を含む文書の集まりを持っています。
クエリに一致する値から1つの収益の配列を取得したいとします。
MongoDB集約で異なる文書から配列を合計するには?

例データ

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

コホート2113及び2114

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

I最短配列の長さを知っているので、二つの結果は、私の目的のために同じであるため期待される結果。
MongoDB集約パイプラインで操作を実行する方法はありますか?
または、より良いソリューションを提案できますか?

はい、私はPyMongoを使用してデータベースにアクセスします。

答えて

0

私はこの新しい3.2機能を発見しました:includeArrayIndex

だからあなたは新しい配列を取得するには、ID、その後sortpushとしてあなたincludeArrayIndexフィールドを使用して、このオプションと、その後sumとフィールドの収入をunwindすることができます。

参考:https://docs.mongodb.org/manual/reference/operator/aggregation/unwind/

+0

ありがとう!私はそのincludeArrayIndexオプションを見逃しました – user3043365

関連する問題