2
異なるレベルのソーシャルデータを対象とするクエリを実行しています。これはかなり大きな集約パイプラインで動作し、$ファセット内で実行されます。 $ facetセクションの結果には、次に2つの配列を組み合わせています。例えば。Mongodbグループ集計ファセットからの類似データの2つの配列の合計
{
"first": [
{
"_id": {
"name": "one",
"_id": "1"
},
"date": [
"2017-09-07T00:00:00.000Z"
],
"data": [
1000
]
},
{
"_id": {
"name": "two",
"_id": "2"
},
"date": [
"2017-09-07T00:00:00.000Z"
],
"data": [
2000
]
}
],
"second": [
{
"_id": {
"name": "1",
"_id": "one"
},
"date": [
"2017-09-07T00:00:00.000Z"
],
"data": [
1000
]
},
{
"_id": {
"name": "two",
"_id": "2"
},
"date": [
"2017-09-07T00:00:00.000Z"
],
"data": [
2000
]
}
]
}
私はこれらの結果をグループ化したいと
[ {
"_id": {
"name": "1",
"_id": "one"
},
"date": [
"2017-09-07T00:00:00.000Z"
],
"data": [
2000
]
},{
"_id": {
"name": "2",
"_id": "two"
},
"date": [
"2017-09-07T00:00:00.000Z"
],
"data": [
4000
]
}]
で終わるために合計を追加することになり、私は個々の応答がこのレベルにそれらを取得するグループのクエリを持っていますが、何かが欠けています2つの配列をマージすることができます。私は最初と2番目の配列を巻き戻すことを実験しましたが、両方の配列のデータを結合するソリューションを見つけることができませんでした。
大変助かりましたか?
あなたはこれまでに何を試しましたか? – turmuka
私はかなりの標準的な解決策として、他のものを巻き戻すことを考えて1つの配列を巻き戻そうとしましたが、ペアにしようとしているデータは両方の配列にあります。私は両方の配列をアンワインドしており、それは重複の束を作りますが、おそらく唯一の選択肢です。 "最初の"配列と "2番目の"配列自体でグループを実行することはできません。 –
それらが分割されたら、idsなどのパスを隠すので、ラッピングオブジェクトを削除する必要があります。 例:最初の:{_id、日付、データ}、2番目:{_id、日付、データ} 第1と第2のフラグは、いわば「途中」です。 –