我有一大組文件,可能有兩個數組或兩個之一。我想將它們合併到一個$項目中。
我目前使用$ concatArrays,但正如文檔所說,當其中一個數組爲空時它將返回null。我可以弄清楚如何在那裏添加一個條件語句,它將返回$ concatArrays或者其中的數組。
例
我:
{_id: 1, array1: ['a', 'b', 'b'], array2: ['e', 'e']}
{_id: 2, array1: ['a', 'b', 'b']}
{_id: 3, array2: ['e', 'e']}
我想:
{_id: 1, combinedArray: ['a','b', 'b', 'e', 'e']}
{_id: 2, combinedArray: ['a','b', 'b']}
{_id: 3, combinedArray: ['e', 'e']}
我想:
$project: {
combinedArray: { '$concatArrays': [ '$array1', '$array2' ] }
}
//output (unexpected result):
{_id: 1, combinedArray: ['a','b', 'b', 'e', 'e']}
{_id: 2, combinedArray: null}
{_id: 3, combinedArray: null}
我也試過:
$project: {
combinedArray: { '$setUnion': [ '$array1', '$array2' ] }
}
//output (unexpected result):
{_id: 1, combinedArray: ['a','b', 'e']}
{_id: 2, combinedArray: ['a','b']}
{_id: 3, combinedArray: ['e']}
你在(1)和(2)之後得到了什麼? –
它們被包裝在一個$項目中。我嘗試了兩個獨立。 – Mika
我還是不明白你在(1)和(2)之後有什麼。錯誤?沒有預期的結果? –