MONGODB $ CONCATARRAYS

MONGODB $ CONCATARRAYS

O $ Concatarrays é a expressão da matriz de MongoDB, que é usada no método do pipeline de agregação. O operador $ concatarrays é usado para concatenar as duas matrizes de documentos em uma única matriz. Para fazer uma matriz única, podemos concatenar mais de duas matrizes com o operador $ concatarrays. O ponto importante é que o operador $ Concatarrays resolve apenas os campos de matriz em MongoDB ou então gera o erro. A matriz deve ser uma declaração válida para $ concatarrays antes que possa ser convertida em uma matriz modificada. O operador $ concatarrays retorna nulo se algum dos argumentos for um campo inexistente ou resolve um valor nulo. Este artigo fornece mais informações sobre o operador $ concatarrays.

Como usar o operador $ concatarrays em mongodb

Utilizamos o operador $ Concatarrays do MongoDB para mesclar as duas matrizes como uma única matriz. O operador $ concatarrays é usado no documento de coleção "jogos". A coleção "Games" de MongoDB é definida com os seguintes documentos usando o comando insertMany (). Esses documentos também contêm os campos de matriz que são usados ​​pelo operador $ Concatarrays aqui para se juntar a eles.

dB.Jogos.InsertMany ([

"_id": 1,
"Jogo": "futebol",
"Team1": ["David", "Mark", "Levis"],
"Team2": ["Sam", "Alex", "Orchid"],
"Score1": [20, 14, 8],
"Score2": [7, 19, 21]
,

"_id": 2,
"Game": "Tennis",
"Team1": ["Bella", "Emily", "Alice"],
"Team2": ["Stella", "Bloom", "Olive"],
"Score1": [19, 15, 18],
"Score2": [17, 10, 11]
,

"_id": 3,
"Game": "Basketball",
"Team1": ["George", "Smith", "Polard"],
"Team2": [],
"Score1": [21, 15, 6],
"Score2": [4, 13, 19]
,

"_id": 4,
"Game": "Badminton",
"Team1": ["David", "Mark", "Levis"],
"Team2": 0,
"Score1": [20, 14, 8],
"Score2": [7, 19, 21]

]))

Quando executamos a consulta InsertMany () no shell do MongoDB, ela representa os seguintes resultados:

reconhecido: verdadeiro, inserdIds: '0': 1, '1': 2, '2': 3, '3': 4

Exemplo 1: Operador MongoDB $ Concatarrays para concatenar a matriz inteira

Usamos o operador MongoDB $ Concatarrays para concatenar a matriz dos elementos inteiros. Aqui, usamos os campos $ SCORE1 e $ SCORE2 para a operação porque eles contêm os valores numéricos da matriz. Utilizamos o operador agregate (), onde o operador de Match $ corresponde ao documento que satisfaz a condição ““ Game ”:“ Football ””. Em seguida, utilizamos o operador do projeto $ para a inclusão do campo "NewArray". O campo "NewArray" possui o operador $ concatarrays que insere os campos de matriz "$ pontuação1" e "$ score2". O operador $ Concatarrays mescla os valores desses campos apenas para o documento cujo campo de "jogos" tem o valor de "futebol".

dB.Jogos.agregar([
$ Match: "Game": "Football",
$ Project:
NewArray: $ concatarrays: ["$ score1", "$ score2"]]))

A matriz que é exibida na saída contra o campo "NewArray" contém todos os elementos do campo conjunto dos $ concatarrays. Observe que qualquer valor repetido não é concatenado duas vezes na matriz. Parece apenas um de cada vez na matriz recém -gerada pelo operador $ Concatarrays.

[_id: 1, newArray: [20, 14, 8, 7, 19, 21]]

Exemplo 2: Operador MongoDB $ Concatarrays para concatenar a matriz de string

Usamos o operador $ Concatarrays para ingressar nos valores de matriz numérica. O operador $ concatarrays de mongodb também mescla o valor da matriz de string em uma única matriz. Assim como a matriz inteira, o operador $ concatarrays mescla os elementos exclusivos da matriz de string. Aqui, combinamos o documento com o valor "tênis" no campo "Jogos". Depois que o documento é correspondido pelo operador de Match $, aplicamos o operador $ Concatarrays nos campos de matriz de string, "$ Team1" e "$ Team2". O campo "NewArray" projetado exibe a matriz resultante pelo operador $ Concatarrays.

dB.Jogos.agregar([
$ Match: "Game": "Tennis",
$ Project: newArray:
$ concatarrays: ["$ Team1", "$ Team2"]])

Os valores da string dos campos "$ Team1" e "$ Team2" são concatenados pelo operador $ Concatarrays no seguinte campo "NewArray":

[[

_id: 2,
NewArray: ['Bella', 'Emily', 'Alice', 'Stella', 'Bloom', 'Olive']

]

Exemplo 3: MongoDB $ Concatarrays Operator para concatenar as matrizes vazias

Quando o operador $ concatarrays se junta ao campo da matriz com outro campo vazio, nenhuma alteração ocorre. O campo de matriz que contém os valores só aparece na nova matriz modificada. Vamos considerar o funcionamento da operadora $ Concatarrays no campo de matriz vazio. Primeiro pesquisamos o documento que tem a matriz vazia. O operador de Match $ é usado para encontrar o documento com o campo "_id" e o valor de "3". Em seguida, temos o campo de inclusão "ArrayResult", que é empregado com o operador $ Concatarrays. O $ Concatarrays usa a expressão ["$ Team1", "$ Team2"] para mesclá -los como uma matriz única.

dB.Jogos.agregar([
$ Match: _id: 3,
$ Project:
_id: 0,
NewArray: $ concatarrays: ["$ Team1", "$ Team2"]


]))

A matriz resultante exibe apenas o elemento da primeira matriz pelo operador $ Concatarrays porque a segunda matriz está vazia.

[NewArray: ['George', 'Smith', 'Polard']]

Exemplo 4: MongoDB $ Concatarrays Operator para concatenar as matrizes de outro tipo

O operador $ concatarrays toma apenas o argumento como uma expressão válida para resolver as matrizes. MongoDB produz um erro se o operador $ concatarrays não puder ser resolvido para uma matriz. Aqui está a consulta em que a expressão inválida é passada no $ concatarrays. Primeiro, implantamos o operador de Match $ no método agregate () que corresponde à expressão “_id: 4” com os documentos da coleção com os quais estamos trabalhando. Depois disso, temos um operador de projeto $ para a supressão do campo "_id", já que "0" é alocado para ele. Em seguida, temos uma nova adição do campo "ArrayResult", onde a operação $ Concatarrays é conduzida. O operador $ Concatarrays aqui insere “$ Team1” o campo Array, que tem o valor da string e o campo “$ Team2” não é a matriz. Além disso, o campo $ Team2 tem um tipo de valor inteiro.

dB.Jogos.agregar([
$ Match: _id: 4,
$ Project:
_id: 0,
ArrayResult: $ concatarrays: ["$ Team1", "$ Team2"]


]))

Lá, encontramos o erro do servidor MongoDB como o operador $ Concatarrays, que está tentando entrar na matriz com o outro tipo.

“MongoserverRor: error do PlaneXecutor durante a agregação :: causado por :: $ concatarrays apenas suporta matrizes, não int”

Exemplo 5: Operador MongoDB $ Concatarrays para concatenar a matriz do campo ausente

Quando o operador $ concatarrays é usado para ingressar na matriz de campo que não existe em nenhum dos documentos, o nulo é obtido na saída. Considere a declaração com o exemplo de script. Concatenamos os campos de matriz correspondendo ao documento "_id: 4" usando o operador $ Match. Em seguida, temos um operador de projeto $ que define o campo "ResultArr". O campo "ResultArr" possui o operador de $ Concatarrays que é usado para ingressar no campo "$ Team1" incluído no documento especificado com o campo "$ Team3", que não faz parte do documento.

dB.Jogos.agregar([
$ Match: _id: 2,
$ Project:
_id: 0,
ResultArr: $ concatarrays: ["$ Team1", "$ Team3"]


]))

Quando a consulta é executada no shell do MongoDB, o "NULL" é recuperado do $ concatoperador porque o campo $ Team3 não está incluído no documento de "_id: 4".

[ResultArr: null]

Conclusão

Este artigo é sobre o operador MongoDB $ Concatarrays, que se junta ao valor da matriz. Mesclamos as matrizes inteiras e as matrizes de string com a ajuda do operador $ Concatarrays. Em seguida, empregamos o operador $ concatarrays para concatenar a matriz vazia com a matriz preenchida que acabou com o primeiro elemento da matriz na saída. Também ingressamos na matriz com a matriz que devolve o valor nulo. No final, pegamos o caso da operadora $ Concatarrays, onde nos juntamos às matrizes de diferentes tipos.