Operador $Min de MongoDB

Operador Min De Mongodb



Si no sou un nou usuari de bases de dades o de programació, heu d'haver provat els programes i consultes que utilitzen els operadors de comparació: major que, menor que, igual a, etc. A MongoDB, on utilitzem l'operador '$set' per actualitzar un registre de camp específic o afegir un registre nou a la base de dades, també podem aconseguir el mateix resultat mitjançant els operadors de comparació com '$min' i '$max'. A MongoDB, l'operador '$min' es pot utilitzar en moltes consultes de funcions per actualitzar un camp específic quan un valor nou és inferior al valor ja inserit. A més, es pot utilitzar per agrupar i mostrar els registres d'una col·lecció en un ordre particular. Aquesta guia us ajuda amb diferents maneres d'eliminar l'operador '$min' a MongoDB.

Exemple 1:

A partir de la primera il·lustració, demostrem l'ús de l'operador '$min' a MongoDB per actualitzar un registre ja inserit mitjançant l'eina d'intèrpret d'ordres MongoDB al sistema Windows. Per tant, heu de tenir alguns registres que ja s'han afegit a la vostra base de dades. Per tant, utilitzem la consulta de funció insertMany() per afegir un total de 5 registres a la col·lecció 'ordre' d'una base de dades 'prova'. Cadascun dels registres inserits que es mostren a la il·lustració següent conté un total de 4 camps: identificació, títol, preu de venda i impostos. Aquestes dades de 5 registres s'han inserit correctament segons la sortida adjunta:

prova > db.order.insertMany ( [ { 'id' : 01, 'Títol' : 'Sabó' , 'Preu de venta' : 500 , 'Impost' : 24 } ,
... { 'id' : 02, 'Títol' : 'xampú' , 'Preu de venta' : 700 , 'Impost' : 27 } ,
... { 'id' : 03, 'Títol' : 'Detergent' , 'Preu de venta' : 400 , 'Impost' : 22 } ,
... { 'id' : 04, 'Títol' : 'Perfum' , 'Preu de venta' : 900 , 'Impost' : 30 } ,
... { 'id' : 05, 'Títol' : 'Boira' , 'Preu de venta' : 850 , 'Impost' : 27 } ] )







És hora de mirar el registre inserit en una base de dades de 'prova'. Per això, heu de desactivar el mètode 'find()' juntament amb el mètode 'forEach', prenent el 'printjson' com a argument a la instrucció 'db'. Utilitzant la col·lecció anomenada 'ordre', tenim un registre que es mostra a la pantalla.



prova > db.order.trobar ( ) .per cadascú ( printjson )



Ja és hora d'utilitzar l'operador '$min' a la consulta de funció 'updateOne' per actualitzar un únic registre de la col·lecció 'order' que s'acaba de crear. El camp 'id' s'utilitza com a identificador únic per actualitzar un registre específic d'una base de dades mentre que l'operador '$min' s'aplica a un camp 'SalePrice' per actualitzar el seu valor a 600 si és inferior al valor ja inserit. El missatge de sortida mostra que la consulta ha tingut èxit, però no es fan actualitzacions.





prova > db.order.updateOne ( { id: 3 } , { $min : { Preu de venta: 600 } } )

El motiu pel qual no s'actualitza el camp 'Preu de venda' del tercer registre és que conté el valor de '400', que és inferior a '600'. Per tant, l'operador '$min' no actualitza el valor mínim de '400' amb un valor més gran de '600' segons la consulta find() adjunta següent:



prova > db.order.trobar ( ) .per cadascú ( printjson )

Fem un petit canvi a la consulta d'actualització per obtenir una sortida diferent aquesta vegada. Utilitzem la mateixa instrucció 'db' que utilitza la funció 'updateOne' per modificar un sol registre de '3'. L'operador '$min' s'aplica al camp 'SalePrice' per establir el seu valor a '300' si el valor de '300' és inferior al valor ja inserit. Sabem que el valor ja inserit de '400' del camp SalePrice és més gran que el nou valor de '300' a comparar. Per tant, aquesta vegada substitueix '400' per '300'. El missatge de sortida mostra l'execució correcta d'aquesta consulta. El recompte modificat = 1 significa que s'ha modificat 1 registre.

prova > db.order.updateOne ( { id: 3 } , { $min : { Preu de venta: 300 } } )

Després de mostrar els registres d'una col·lecció de 'comandes' de la base de dades 'prova' en format JSON mitjançant la instrucció de la funció 'find()' a l'intèrpret d'ordres de MongoDB, vam trobar que el tercer registre s'ha actualitzat correctament. El valor de 400 del camp 'Preu de venda' se substitueix pel valor de 300.

prova > db.order.trobar ( ) .per cadascú ( printjson )

Exemple 2:

Dins d'aquesta il·lustració de MongoDB, obtenim els registres d'una base de dades específica agrupant-los pel que fa a l'operador '$min' segons el valor mínim dels registres. Suposem que teniu els mateixos 5 registres a la col·lecció de 'comandes' de la base de dades de 'prova' de MongoDB i que necessiteu tenir algunes dades duplicades en els camps particulars d'una base de dades de 'prova'. Per a això, afegim més registres a la col·lecció 'ordre' de la base de dades 'test'. Aquesta vegada, inserim els valors duplicats per al camp 'Títol'. S'utilitza en una clàusula '$group' per formar un grup de valors únics. La sortida següent mostra els 3 registres més recentment inserits per a la base de dades de 'prova'. Ara, la col·lecció 'comanda' té valors duplicats per al camp 'Títol' en comparació amb els 5 registres antics. La resta fa servir el mateix.

Després de tenir un total de 8 registres a la col·lecció 'ordre' de la base de dades 'prova', és el moment de provar l'operador $min de MongoDB després de la seva aplicació en un camp específic que s'agrupa per un altre camp. L'ordre agregat adjunt és tot sobre això. Comença amb la paraula clau 'db' seguida del nom d'una col·lecció en una base de dades particular i la funció d'agregació (). La funció d'agregació comença amb l'ús de la clàusula $group de MongoDB que s'utilitza especialment aquí per mostrar les dades d'un grup sobre el camp 'Títol' de la base de dades 'prova' on el camp 'Títol' es pren com a clau única. .

Al mateix temps, el camp de preu s'inicia per separat, que només pren el registre de valor mínim del total de 8 registres iguals mitjançant l'operador '$min' que s'hi aplica. La sortida d'aquesta execució de consulta mostra la visualització de 5 registres amb una petita actualització a la secció de preus. Podeu veure que no es mostren registres repetitius. Aquí es mostren alguns registres únics i de menor valor.

prova > db.order.agregate ( [ { $grup : { _id: ' $Títol ' , preu: { $min : ' $SalePrice ' } } } ] )

Conclusió

Aquesta guia és una col·lecció d'il·lustracions de MongoDB per mostrar una manera senzilla d'utilitzar l'operador '$min'. El paràgraf d'introducció s'utilitza per discutir el propòsit del seu ús a MongoDB. La primera part d'aquest article tracta com funciona l'operador '$min' i no funciona per a un sol registre en una base de dades, és a dir, per actualitzar o inserir un registre com a valor mínim. A més, els últims exemples demostren el seu ús per agrupar el registre de la col·lecció com a únic a tota la base de dades.