MongoDB $ Max Operator

MongoDB $ Max Operator
MongoDB se le ocurrió muchos operadores para realizar transacciones de uso especial como actualizar los registros, agregar un nuevo registro y mostrar los registros en cierta condición. Uno de esos operadores es el operador "$ max" que se utiliza para verificar el valor más grande en el registro. Además de eso, podemos usarlo para actualizar el valor más pequeño con un nuevo valor más grande después de compararlos en la instrucción de la función "actualizar". El otro uso del operador "$ max" es agrupar y mostrar los registros de una determinada colección de una manera que solo puede mostrar el valor más grande mientras ignora el valor más pequeño cuando hay algunos registros duplicados en la base de datos. En esta guía, vamos a utilizar ejemplos de consultas simples para discutir los usos mencionados previamente del operador "$ max" en la utilidad de línea de comandos MongoDB en nuestra plataforma de Windows.

Ejemplo 1:

Comenzando con la ilustración para discutir y cómo funciona el operador "$ máximo" en el shell de MongoDB, necesitamos tener una colección llamada "datos" que deba crearse ya. Para crear esta colección, debemos agregar algunos registros directamente sin el uso de ninguna instrucción de "crear". La instrucción de inserción es suficiente para crear una colección y agregar los registros en ella. Usamos la función "InsertMany" en la consulta para agregar cuatro registros, cada uno con 4 campos de diferentes tipos.

Prueba> DB.datos.InsertMany (["id": 1, "Nombre": "Bravo", "Salario": 65000, "Age": 44,
... "id": 2, "Nombre": "Stephen", "Salario": 77000, "Age": 55,
... "id": 3, "nombre": "maria", "salario": 42000, "edad": 27,
... "id": 4, "Nombre": "Hawkin", "Salario": 58000, "Age": 33])

El comando insertar es exitoso y el mensaje de salida muestra que los registros se agregan.

Después de insertar los registros en la recopilación de "datos" de nuestro MongoDB, es hora de ver esos registros en el shell. Por lo tanto, ejecutamos la instrucción de la función "find ()" en la CLI MongoDB seguida de la función "foreach ()", tomando el argumento printjson para mostrar un resultado en el formato JSON. El resultado que se muestra en el shell muestra un total de 4 documentos en la colección que se muestran en la siguiente imagen de salida:

Prueba> DB.datos.encontrar().foreach (printjson)

Probemos el operador "$ max" en el comando de actualización de MongoDB para modificar los registros ya insertados. Por lo tanto, el UpdateOne () se usa aquí para modificar solo un solo registro de la recopilación de "datos" como un registro específico donde el campo "ID" tiene un valor de "2". El operador "$ max" se aplica al campo "salario" de la recopilación de "datos" para verificar si el campo "salario" tiene un valor que es mayor que 55000. Si no, actualice el registro con 55000. El resultado de salida para esta consulta de función UpdateOne () que muestra un recuento de modificaciones "0" como registro "2" tiene menos de 55000 valor salarial.

Prueba> DB.datos.UpdateOne (id: 2, $ max: salario: 55000)

Después de esta actualización, intentamos la misma consulta de función "find ()" para mostrar el resultado modificado en el shell de línea de comandos de MongoDB. Pero obtenemos la misma salida que obtuvimos antes de usar la instrucción de "actualizar". No hubo cambios porque el valor 77000 es mayor que 55000.

Prueba> DB.datos.encontrar().foreach (printjson)

Probemos la misma consulta UpdateOne () una vez más con un poco de modificación. Esta vez, intentamos el mayor valor que es "85000" que el valor "77000" que ya reside en el campo "Salario" de la recopilación de "datos" para marcar la diferencia en nuestra salida. La salida muestra el recuento de modificaciones "1" esta vez, ya que el valor "85000" reemplaza el valor ya residido de "77000" en el campo después de que la comparación ocurrió solo por el operador "$ máximo" en esta consulta.

Prueba> DB.datos.UpdateOne (id: 2, $ max: salario: 85000)

Después de reemplazar con éxito el valor más pequeño de "77000" con un nuevo valor de "85000" a través del operador "$ máximo" de MongoDB, finalmente usamos la función "Find ()" en la instrucción "DB" para verificar esta actualización, si se actualiza correctamente o no. La salida muestra que el valor en el campo "salario" de un segundo registro en esta colección se actualiza perfectamente.

Prueba> DB.datos.encontrar().foreach (printjson)

Ejemplo 2:

Saltemos a otro ejemplo para usar el operador "$ max" en MongoDB. Esta vez, descartamos el operador "$ máximo" para agrupar y mostrar los registros únicos de una colección si hay duplicados para los mismos valores de campo. Para esto, insertamos 2 registros más en la recopilación de "datos" de una base de datos de "prueba". Estos registros contienen los 2 mismos valores en el campo "Nombre" que también se encuentran en los 4 registros ya insertados y el resto son diferentes. Para insertar los registros, utilizamos la misma instrucción "DB" que contiene la función "InsertMany" para que la recopilación de "datos" se actualice.

Prueba> DB.datos.InsertMany (["id": 5, "Nombre": "Bravo", "Salario": 35000, "Age": 45,
... "id": 6, "Nombre": "Hawkin", "Salario": 67000, "Age": 33])

La instrucción se ejecuta con éxito.

Ahora que se agregan los 2 nuevos registros, también puede mostrarlos utilizando la misma función "Find" en la instrucción "DB" seguida de la función "ForEach". La siguiente salida de visualización en la imagen muestra los 2 nuevos registros al final de esta colección:

Prueba> DB.datos.encontrar().foreach (printjson)

Después de mostrar los 6 registros de la recopilación de "datos", estamos listos para realizar la función agregada en ella. Por lo tanto, la función "agregada" se utiliza en la siguiente consulta enumerada. Con esta función, utilizamos el operador "$ grupo" para agrupar el registro de una recopilación de "datos" de acuerdo con los nombres únicos del campo "ID" y el campo "Salario". El operador "$ max" se aplica al campo "salario" de los registros para que se muestren los valores máximos. Obtenga el mayor valor del campo "De acuerdo con los nombres duplicados en el campo" Nombre "que se utiliza como" ID "para que se muestre esta agrupación. Se muestran un total de 4 registros. El valor más pequeño (de los registros duplicados) se ignoran mientras se muestra el valor más grande.

db.datos.agregado ([$ grupo: _id: "$ name", salario: $ max: "$ salario"])

Conclusión

El primer párrafo de esta guía lo ayuda a comprender la importancia de los operadores que se usan en MongoDB, especialmente el operador "$ máximo" y su uso en el shell MongoDB. Esta guía contiene dos ejemplos basados ​​en comandos que están relacionados con el operador "$ max" para demostrar su propósito. Al pasar por las ilustraciones de MongoDB, podrá realizar algunas transacciones útiles en la base de datos, ya sea reemplazar un registro ya existente con un nuevo valor o mostrar los registros agrupándolos a través del operador "$ max".