Definição
Retorna uma única array que concatena duas ou mais arrays.
Observação
Desambiguação
Esta página descreve $concatArrays quando usado como uma expressão, que concatena duas ou mais arrays em uma única array dentro de um único documento.
Você também pode usar $concatArrays nestes outros contextos:
$concatArrays (accumulator), que concatena os valores de array de um campo em um grupo de documentos.$concatArrays (window function), que é usado no estágio$setWindowFieldspara concatenar os valores de array de um campo em uma janela de documentos.
Sintaxe
Quando utilizado como uma expressão, $concatArrays tem a seguinte sintaxe:
{ $concatArrays: [ <expression1>, <expression2>, ... ] }
Comportamento
Os operandos <expression> podem ser qualquer expressão válida se forem resolvidos em um array. Para mais informações sobre expressões, consulte Expressões.
Caso algum argumento seja resolvido com um valor null ou caso algum fragmento seja destinado a um campo ausente, $concatArrays retornará null.
A tabela a seguir mostra como o $concatArrays lida com arrays e arrays agrupadas:
Exemplo | Resultados | |||||
|---|---|---|---|---|---|---|
| | |||||
| |
Exemplo
O exemplo a seguir usa a coleção movies do conjunto de dados de amostra sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação, consulte Carregar o conjunto de dados de amostra.
O pipeline a seguir concatena as arrays genres e writers do filme "O Poderoso Chefão":
db.movies.aggregate( [ { $match: { title: "The Godfather" } }, { $project: { _id: 0, title: 1, combinedMovieInfo: { $concatArrays: [ "$genres", "$writers" ] } } } ] )
A operação usa $match para encontrar "O Poderoso Chefão" e $concatArrays para combinar seus arrays genres e writers em uma única array combinedMovieInfo.
Limitações
$concatArrays suporta apenas arrays e expressões que resolvem para uma array.