Operador MongoDB $Max

Operador Mongodb Max



MongoDB ideó muchos operadores para realizar transacciones con fines especiales, como actualizar los registros, agregar un nuevo registro y mostrar los registros bajo ciertas condiciones. Uno de esos operadores es el operador '$max' que se usa para verificar el valor más grande en el registro. Aparte 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 manera que solo pueda mostrar el valor más grande e ignorar el valor más pequeño cuando hay algunos registros duplicados en la base de datos. En esta guía, vamos a usar ejemplos de consultas simples para analizar los usos mencionados anteriormente del operador '$max' en la utilidad de línea de comandos de MongoDB en nuestra plataforma Windows.

Ejemplo 1:

Comenzando con la ilustración para discutir y cómo funciona el operador '$ max' en el shell de MongoDB, necesitamos tener una colección llamada 'datos' que ya debe estar creada. Para crear esta colección, debemos agregarle 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.data.insertMany ( [ { 'identificación' : 1 , 'Nombre' : 'Bravo' , 'Sueldo' : 65000 , 'Años' : 44 } ,
... { 'identificación' : 2 , 'Nombre' : 'Esteban' , 'Sueldo' : 77000 , 'Años' : 55 } ,
... { 'identificación' : 3 , 'Nombre' : 'María' , 'Sueldo' : 42000 , 'Años' : 27 } ,
... { 'identificación' : 4 , 'Nombre' : 'halcón' , 'Sueldo' : 58000 , 'Años' : 33 } ] )







El comando de inserción es exitoso y el mensaje de salida muestra que se agregaron los registros.



Después de insertar los registros en la colecció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 MongoDB Cli seguida de la función 'forEach()', tomando el argumento printjson para mostrar un resultado en 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.data.find ( ) .para cada ( imprimirjson )





Probemos el operador “$max” en el comando de actualización de MongoDB para modificar los registros ya insertados. Por lo tanto, updateOne() se usa aquí para modificar solo un único registro de 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 superior a 55000. De lo contrario, actualice el registro con 55000. El resultado de salida para este consulta de la función updateOne() que muestra un recuento de modificaciones '0' ya que el registro '2' tiene un valor de salario inferior a 55000.

prueba > db.data.updateOne ( { identificación: 2 } , { $máx. : { Sueldo: 55000 } } )



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

prueba > db.data.find ( ) .para cada ( imprimirjson )

Probemos la misma consulta updateOne() una vez más con una pequeña modificación. Esta vez, probamos el valor mayor que es '85000' que el valor '77000' que ya reside en el campo 'Salario' de la recopilación de 'datos' para hacer una diferencia en nuestra salida. El resultado muestra el recuento de modificaciones '1' esta vez, ya que el valor '85000' reemplaza el valor que ya reside de '77000' en el campo después de que se realizó la comparación solo por el operador '$max' en esta consulta.

prueba > db.data.updateOne ( { identificación: 2 } , { $máx. : { Sueldo: 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 '$max' de MongoDB, finalmente usamos la función 'buscar()' en la instrucción 'db' para verificar esta actualización, si se actualizó con éxito o no. El resultado muestra que el valor en el campo 'Salario' de un segundo registro en esta colección está perfectamente actualizado.

prueba > db.data.find ( ) .para cada ( imprimirjson )

Ejemplo 2:

Pasemos a otro ejemplo para hacer uso del operador '$max' en MongoDB. Esta vez, eliminamos el operador '$max' para agrupar y mostrar los registros únicos de una colección si hay duplicados para los mismos valores de campo. Para ello, insertamos 2 registros más en la colección de “datos” de una base de datos de “prueba”. Estos registros contienen los 2 mismos valores en el campo 'Nombre' que también están 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 se actualice la recopilación de 'datos'.

prueba > db.data.insertMany ( [ { 'identificación' : 5 , 'Nombre' : 'Bravo' , 'Sueldo' : 35000 , 'Años' : 45 } ,
{ 'identificación' : 6 , 'Nombre' : 'halcón' , 'Sueldo' : 67000 , 'Años' : 33 } ] )

La instrucción se ejecuta con éxito.

Ahora que se agregaron los 2 nuevos registros, también puede mostrarlos usando la misma función 'buscar' en la instrucción 'db' seguida de la función 'forEach'. El siguiente resultado de visualización en la imagen muestra los 2 nuevos registros al final de esta colección:

prueba > db.data.find ( ) .para cada ( imprimirjson )

Después de mostrar los 6 registros de recopilación de 'datos', estamos listos para realizar la función agregada en ellos. Por lo tanto, la función 'agregar' se utiliza en la siguiente consulta enumerada. Con esta función, utilizamos el operador '$group' para agrupar el registro de una colección de 'datos' según los nombres únicos del campo 'id' y el campo 'Salario'. El operador '$max' se aplica al campo 'Salario' de los registros para obtener los valores máximos que se mostrarán. Obtenga el mayor valor del campo Salario” 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 ignora mientras se muestra el valor más grande.

db.datos.agregados ( [ { $grupo : { _identificación: ' $Nombre ' , Sueldo: { $máx. : ' $ Salario ' } } } ] )

Conclusión

El primer párrafo de esta guía lo ayuda a comprender la importancia de los operadores que se utilizan en MongoDB, especialmente el operador '$max' y su uso en el shell de MongoDB. Esta guía contiene dos ejemplos basados ​​en comandos que están relacionados con el operador '$max' para demostrar su propósito. Al revisar 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 mediante el operador '$max'.