聚集產生兩個數組:$array1
和$array2
:在MongoDB聚合中加入兩個數組?
$array1 = [{ key1_1: 0,
key1_2: 1,
key1_3: 2
},
{ key1_1: 0,
key1_2: 1,
key1_3: 2
}]
$array2 = [{ key2_1: 0,
key2_2: 1
},
{ key2_1: 0,
key2_2: 1
}]
我想完全加入他們的行列。
如果我這樣做:
{ $project: { 'output': { $concatArrays: [ '$array1', '$array2' ] } }
結果將是這樣的:
output: [{ key1_1: 0,
key1_2: 1,
key1_3: 2
},
{ key2_1: 0,
key2_2: 1
},
{ key1_1: 0,
key1_2: 1,
key1_3: 2
},
{ key2_1: 0,
key2_2: 1
}]
而我寧願這樣:
output: [{ key1_1: 0,
key1_2: 1,
key1_3: 2,
key2_1: 0,
key2_2: 1
},
{ key1_1: 0,
key1_2: 1,
key1_3: 2,
key2_1: 0,
key2_2: 1
}]
我想這是唯一可能通過$project
,但如何?
沒有與接合陣列沒有問題。但是你試圖加入對象 - 將所有對象的字段複製到一個對象中 –
有沒有簡單的方法來做到這一點? –
我注意到正在使用的密鑰是重複的。你能否指定一個適當的樣本文件?如果您可以提供詳細信息(如數組對象中的字段數)以及數組中的對象數,這將會很有幫助。 –