MongoDB $ concataRrays

MongoDB $ concataRrays

El $ concataRrays es la expresión de matriz de MongoDB que se utiliza en el método de tubería de agregación. El operador $ concatrays se utiliza para concatenar las dos matrices de documentos en una sola matriz. Para hacer una matriz única, podemos concatenar más de dos matrices con el operador $ concatrays. El punto importante es que el operador $ concatrays solo resuelve los campos de matriz en MongoDB o de lo contrario genera el error. La matriz debe ser una declaración válida para $ concatArrays antes de que pueda convertirse en una matriz modificada. El operador $ ConcatArray devuelve nulo si alguno de los argumentos es un campo inexistente o se resuelve a un valor nulo. Este artículo proporciona más información sobre el operador $ concatrays.

Cómo usar el operador $ concataRrays en MongoDB

Usamos el operador $ concatrays de MongoDB para fusionar las dos matrices como una sola matriz. El operador $ concatrays se usa en el documento de colección "Juegos". La colección "Juegos" de MongoDB se establece con los siguientes documentos utilizando el comando InsertMany (). Estos documentos también contienen los campos de matriz que utilizan el operador $ ConcatArrays aquí para unirse a ellos.

db.Juegos.insertmany ([

"_id": 1,
"Juego": "Fútbol",
"Team1": ["David", "Mark", "Levis"],
"Team2": ["Sam", "Alex", "Orchid"],
"Score1": [20, 14, 8],
"Score2": [7, 19, 21]
,

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

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

"_id": 4,
"Juego": "bádminton",
"Team1": ["David", "Mark", "Levis"],
"Team2": 0,
"Score1": [20, 14, 8],
"Score2": [7, 19, 21]

])

Cuando ejecutamos la consulta InsertMany () en la carcasa MongoDB, representa los siguientes resultados:

Reconocido: True, InsertedIDS: '0': 1, '1': 2, '2': 3, '3': 4

Ejemplo 1: MongoDB $ ConcatArrays Operator para concatenar la matriz entera

Utilizamos el operador de concatrays MongoDB $ para concatenar la matriz de los elementos enteros. Aquí, usamos los campos $ scacting1 y $ scast22 para la operación porque contienen los valores numéricos de la matriz. Utilizamos el operador agregado () donde el operador $ coincidencia coincide con el documento que satisface la condición "" juego ":" fútbol "". Luego, utilizamos el operador de proyecto $ para la inclusión del campo "NewArray". El campo "NewArray" tiene el operador $ ConcatArrays que ingresa los campos de matriz "$ score1" y "$ scast22". El operador de $ concatrays fusiona los valores de estos campos solo para el documento cuyo campo de "juegos" tiene el valor de "fútbol".

db.Juegos.agregar([
$ Match: "Juego": "Fútbol",
$ Project:
NewArray: $ concataRrays: ["$ score1", "$ scactor2"]]])

La matriz que se muestra en la salida contra el campo "NewArray" contiene todos los elementos del campo establecido de los $ concatArrays. Tenga en cuenta que cualquier valor repetido no se concatena dos veces en la matriz. Simplemente aparece uno a la vez en la matriz recién generada por el operador de $ ConcatArrays.

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

Ejemplo 2: MongoDB $ ConcatArrays Operator para concatenar la matriz de cuerdas

Utilizamos el operador $ concatArrays para unir los valores de la matriz numérica. El operador $ concatrays de MongoDB también fusiona el valor de la matriz de cadenas en una sola matriz. Al igual que la matriz entera, el operador $ concatrays fusiona los elementos únicos de la matriz de cuerdas. Aquí, combinamos el documento con el valor de "tenis" contra el campo "Juegos". Una vez que el documento se corresponde con el operador $ Match, aplicamos el operador $ concatrays en los campos de matriz de cadenas, "$ team1" y "$ team2". El campo proyectado "NewArray" muestra la matriz resultante por el operador de $ ConcatArrays.

db.Juegos.agregar([
$ Match: "Juego": "Tenis",
$ Project: NewArray:
$ concataRrays: ["$ team1", "$ team2"]])

Los valores de cadena de los campos "$ team1" y "$ team2" son concatenados por el operador $ concatrays en el siguiente campo "NewArray":

[

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

]

Ejemplo 3: MongoDB $ Concatrays Operator para concatenar las matrices vacías

Cuando el operador $ concatrays se une al campo de matriz con otro campo vacío, no se producen cambios. El campo de matriz que contiene los valores solo aparece en la nueva matriz modificada. Consideremos el funcionamiento del operador $ concatrays en el campo de la matriz vacía. Primero buscamos el documento que tiene la matriz vacía. El operador $ Match se utiliza para encontrar el documento con el campo "_id" y el valor de "3". Luego, tenemos el campo de inclusión "ArrayResult" que se emplea con el operador $ concatrays. El $ ConcatArrays usa la expresión ["$ Team1", "$ Team2"] para fusionarlos como una matriz única.

db.Juegos.agregar([
$ Match: _id: 3,
$ Project:
_id: 0,
NewArray: $ concataRrays: ["$ team1", "$ team2"]


])

La matriz resultante solo muestra el elemento de la primera matriz por el operador $ concataRrays porque la segunda matriz está vacía.

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

Ejemplo 4: MongoDB $ Concatrays Operator para concatenar las matrices de otro tipo

El operador $ concatrays solo toma el argumento como una expresión válida para resolver las matrices. MongoDB produce un error si el operador $ concatrays no puede resolverse en una matriz. Aquí está la consulta donde se pasa la expresión inválida en los $ concatArrays. Primero implementamos el operador $ coincidencia en el método agregado () que coincide con la expresión "_id: 4" con los documentos de la colección con la que estamos trabajando. Después de eso, tenemos un operador de proyecto $ para la supresión del campo "_id" ya que "0" se asigna a él. Luego, tenemos una nueva incorporación del campo "ArrayResult" donde se realiza la operación $ concatrays. El operador $ concatrays aquí ingresa "$ team1" El campo de matriz que tiene el valor de la cadena y el campo "$ team2" no es la matriz. Además, el campo $ Team2 tiene un tipo de valor entero.

db.Juegos.agregar([
$ Match: _id: 4,
$ Project:
_id: 0,
ArrayResult: $ concataRrays: ["$ team1", "$ team2"]


])

Allí, encontramos el error del servidor MongoDB como el operador $ concatrays que está tratando de unir la matriz con el otro tipo.

"MongoserverError: PlanExecutor Error durante la agregación :: causada por :: $ concataRrays solo admite matrices, no int"

Ejemplo 5: MongoDB $ Concatrays Operator para concatenar la matriz del campo faltante

Cuando el operador $ concatrays se usa para unir la matriz de campo que no existe en ninguno de los documentos, el nulo se obtiene en la salida. Considere la declaración con el script de ejemplo. Concatenamos los campos de matriz haciendo coincidir el documento "_id: 4" usando el operador $ coincidencia. Luego, tenemos un operador de proyecto $ que define el campo "resultarrarr". El campo "ResultArr" tiene el operador $ concatrays que se utiliza para unirse al campo "$ team1" que se incluye en el documento especificado con el campo "$ team3" que no es parte del documento.

db.Juegos.agregar([
$ Match: _id: 2,
$ Project:
_id: 0,
Resultarr: $ concataRrays: ["$ team1", "$ team3"]


])

Cuando la consulta se ejecuta en el shell de MongoDB, el "NULL" se recupera del $ Concatoperator porque el campo $ Team3 no está incluido en el documento de "_id: 4".

[ResultRAr: NULL]

Conclusión

Este artículo trata sobre el operador MongoDB $ Concatrays que se une al valor de la matriz. Fusionamos las matrices enteras y las matrices de cadenas con la ayuda del operador $ concatrays. Luego, empleamos al operador $ concatrays para concatenar la matriz vacía con la matriz llena que terminó con el primer elemento de matriz en la salida. También nos unimos a la matriz con la matriz faltante que devuelve el valor nulo. Al final, tomamos el caso del operador de $ concatrays donde nos unimos a la matrices de diferentes tipos.