MongoDB $ First y $ Firstn Operators

MongoDB $ First y $ Firstn Operators

Los operadores $ First y $ FirstN son el método de tubería de agregación de MongoDB. El operador $ First Agregation nos permite determinar el primer valor en una matriz. El $ First Operator solo toma la matriz como parámetro de entrada. El operador $ Firstn devuelve un número preestablecido de entradas desde el índice inicial de una matriz. El número que se especifica al operador $ FirstN no puede ser inferior a "1". Además, el operador $ FirstN proporciona la matriz original si el número definido es mayor o igual a los valores de la matriz.

Cómo usar los operadores $ First y $ Firstn en MongoDB

Los operadores $ First y $ FirstN se usan en MongoDB para obtener el número requerido de elementos de la variedad de documentos. Los operadores $ First y $ Firstn solo resuelven los campos de matriz en los documentos de la colección MongoDB. Estamos trabajando con la colección "FoodItems" en este artículo de MongoDB. Agregamos los documentos en la colección "FoodItems" que también contiene el campo de matriz en el que funcionan los operadores $ First y $ Firstn. El comando para agregar los documentos se representa aquí que usa el método insertMany () para la inserción al mismo tiempo.

db.Alimentos.insertmany ([

"_id": 1,
"Nombre": "Frutas",
"Lista": ["Apple", "Mango", "Cherry", "Kiwi"],
"Precio": 350
,

"_id": 2,
"Nombre": "Vegetales",
"Lista": ["remolacha", "rábano", "nabo", "zanahoria."],
"Precio": 255
,

"_id": 3,
"Nombre": "Comida de bocadillos",
"Lista": ["Popcorn", "Peanuts salados", "papas fritas", "Sweets horneados", "Chocolates"],
"Precio": 400
,

"_id": 4,
"Nombre": "Bebidas",
"Lista": ["limonada", "batido", "té helado", "café", "agua", "chocolate caliente"],
"Precio": 550
,
"_id": 5,
"Nombre": "comida marina",
"Lista": NULL,
"Precio": 300

])

Ahora, los resultados de insertar los documentos se muestran en lo siguiente que reconocen "verdadero" e indican que todos los documentos se insertan sin ningún error en la colección especificada:


Reconocido: verdadero,
insertedids: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Ejemplo 1: Uso del operador MongoDB $ First para obtener el primer valor de la matriz

Como ya discutimos, el $ First Operator recopila el primer elemento del campo de matriz del documento especificado. En el ejemplo, utilizamos el primer operador de MongoDB para recuperar el valor del primer campo de matriz de todos los documentos que se insertan en la colección "FoodItems". Implementamos el comando agregado donde se especifica el operador del proyecto $. El operador $ proyecto agrega el nuevo campo "FirstItem" que tiene el $ First Operator junto con la expresión. El $ First Operator toma el nombre del campo de matriz "$ List" para obtener el primer elemento.

db.Alimentos.agregar([

$ Proyecto:
"primer elemento":
$ primero: "$ list"



])

Podemos ver que el primer operador $ devuelve el primer valor de la matriz "$ lista" de todos los documentos.

[
_id: 1, FirstItem: 'Apple',
_id: 2, FirstItem: 'Beetroot',
_id: 3, FirstItem: 'Popcorn',
_id: 4, FirstItem: 'Lemonade',
_id: 5, FirstItem: Null
]

Ejemplo 2: Uso del operador MongoDB $ First para el operando no válido

Sabemos que el $ primer operador solo maneja las matrices. Pero el $ First Operator surge de proporcionar un operando inválido. Aquí, tenemos un ejemplo de dar un operando no válido en el $ operador $ para aumentar la expectativa. Utilizamos la misma consulta que en el ejemplo anterior, pero la diferencia está en el primer operador $ donde se cambia la expresión. En lugar de dar el campo de matriz desde los documentos, ingresamos el campo "$ precio" que no contiene los elementos de la matriz. Cuando se ejecuta la consulta, se genera el error.

db.Alimentos.agregar([

$ Proyecto:
"Artículo":
$ primero: "$ precio"



])

El siguiente error de MongoDB ocurre porque el campo de precio $ no es una matriz. El $ First Operator en MongoDB solo trata con las matrices como se menciona en el siguiente error:

MongoserverError: PlanExecutor Error durante la agregación :: causada por :: $ El argumento de First debe ser una matriz, pero es int

Ejemplo 3: Uso del operador MongoDB $ First para los valores faltantes y nulos de la matriz

El primer operador $ devuelve nulo si el argumento es un campo de matriz vacío o un campo de matriz faltante. Hacemos que coincida con el documento que contiene el valor "_id" "5" porque contiene el elemento de matriz nulo. Después de eso, establecemos el $ First Operator en el campo del operador del proyecto $, "FirstListValue". El primer operador $ tiene el campo de matriz de entrada "$ list" para obtener su primer artículo.

db.Alimentos.agregar([
$ Match: "_id": 5,
$ Project:
"FirstListValue":
$ primero: "$ list"



])

Como hemos visto en el documento "_id: 5", el campo de matriz de lista $ contiene el valor nulo. Cuando el primer operador anterior se ejecuta en el shell, le da el valor nulo.

[_id: 5, FirstListValue: NULL]

Ejemplo 4: Uso del operador MongoDB $ Firstn para los enésimo valores de la matriz

Ahora, obtenemos el número requerido de elementos del campo de matriz. Para esto, tenemos el operador $ FirstN cuya implementación es ligeramente diferente del $ First Operator en función de la funcionalidad. Allí, definimos la expresión "_id: 3" en el operador $ coincidencia para que coincida con el documento con esta expresión. Luego, tenemos un nuevo campo "FirstListValue" que se incluye dentro del operador de proyectos $. El nuevo campo "FirstListValue" se emplea con el operador $ Firstn donde se establecen los argumentos "Entrada" y "N". El argumento de "entrada" tiene el nombre del campo de matriz "$ listas". El argumento "n" tiene el valor entero de "2" que indica el número de elementos que se obtienen del campo de matriz proporcionado.

db.Alimentos.agregar([
$ Match: "_id": 3,
$ Project:
"FirstListValue":
$ FirstN: input: "$ list", n: 2



])

Obtuvimos dos elementos de la siguiente matriz "$ list" ya que el número se especifica al operador $ Firstn:

[_id: 3, FirstListValue: ['Palomitas de maíz', 'Peanuts salados']]

Ejemplo 5: Uso del operador MongoDB $ First para el enésimo valor de una matriz con la condición

Además, el argumento "n" del operador $ Firstn se puede asignar con un valor dinámicamente. El parámetro "n" tiene una declaración condicional que está asociada con él que le informa para recuperar el elemento especificado de la matriz cuando la condición está satisfecha. Considere el siguiente comando del operador $ Firstn. Proporcionamos el operador $ coincidencia con el documento "_id: 2" que se coincidirá para el operador $ Firstn. Después de eso, insertamos el campo "FirstListValue" dentro del Operador de Proyecto $. A continuación, tenemos un operador $ FirstN en el campo proyectado "FirstListValue" junto con su parámetro.

La "entrada" es el primer parámetro establecido en el operador $ Firstn con el campo "$ List". Luego, el parámetro "n" se especifica con el operador $ cond que establece la condición if-else. Dentro del "if", tenemos otra condición que es "$ gt: [" $ precio ", 550]". Si el precio $ es mayor que el valor de "550", se recupera el elemento "1". De lo contrario, la opción "else" muestra elementos "3".

db.Alimentos.agregar([
$ Match: _id: 2,
$ Project:
"FirstListValue":
$ FirstN: entrada: "$ list",
n: $ cond: if: $ gt: ["$ precio", 550], entonces: 1, else: 3




])

El operador $ FirstN emite tres elementos de la matriz de lista $ porque el valor de precio $ es "350" del documento dado que no es mayor que el valor especificado.

[_id: 2, FirstListValue: ['Beetroot', 'rábano', 'nabo']]

Conclusión

Este artículo exploró el MongoDB $ First y los $ Firstn Operators. Primero, los $ First Operator Ejemplos se proporcionan con los diferentes casos. El ejemplo del $ primer operador obtuvo el primer valor de la matriz. Luego, el $ First Operator devuelve el valor nulo ya que el campo de matriz tiene el valor faltante. Después de eso, el ejemplo de excepción de primer operador $ se da para un argumento no válido. Se especifica el operador $ FirstN para recolectar los enésimo elemento de la matriz. Además, el operador $ Firstn recolecta los elementos basados ​​en la condición que se da al parámetro "n".