Operatore MongoDB $Max

Operatore Mongodb Max



MongoDB ha ideato molti operatori per eseguire transazioni speciali come l'aggiornamento dei record, l'aggiunta di un nuovo record e la visualizzazione dei record in determinate condizioni. Uno di questi operatori è l'operatore '$max' che viene utilizzato per verificare il valore più grande nel record. A parte questo, possiamo usarlo per aggiornare il valore più piccolo con un nuovo valore più grande dopo averli confrontati nell'istruzione della funzione 'aggiorna'. L'altro uso dell'operatore '$max' è raggruppare e visualizzare i record di una determinata raccolta in modo che possa visualizzare solo il valore più grande ignorando il valore più piccolo quando ci sono alcuni record duplicati nel database. In questa guida, utilizzeremo semplici esempi di query per discutere gli usi precedentemente menzionati dell'operatore '$max' nell'utilità della riga di comando MongoDB nella nostra piattaforma Windows.

Esempio 1:

A partire dall'illustrazione da discutere e da come funziona l'operatore '$max' nella shell MongoDB, abbiamo bisogno di avere una raccolta chiamata 'data' che deve essere già creata. Per creare questa raccolta, dobbiamo aggiungere direttamente alcuni record senza l'uso di alcuna istruzione 'crea'. L'istruzione di inserimento è sufficiente per creare una raccolta e aggiungere i record in essa contenuti. Utilizziamo la funzione 'insertMany' nella query per aggiungere quattro record, ciascuno con 4 campi di tipo diverso.

test > db.data.insertMany ( [ { 'id' : uno , 'Nome' : 'Bravo' , 'Stipendio' : 65000 , 'Età' : 44 } ,
... { 'id' : 2 , 'Nome' : 'Stefano' , 'Stipendio' : 77000 , 'Età' : 55 } ,
... { 'id' : 3 , 'Nome' : 'Maria' , 'Stipendio' : 42000 , 'Età' : 27 } ,
... { 'id' : 4 , 'Nome' : 'Falco' , 'Stipendio' : 58000 , 'Età' : 33 } ] )







Il comando insert ha esito positivo e il messaggio di output mostra che i record sono stati aggiunti.



Dopo aver inserito i record nella raccolta “dati” del nostro MongoDB, è il momento di vedere quei record sulla shell. Pertanto, eseguiamo l'istruzione della funzione 'find ()' su MongoDB Cli seguita dalla funzione 'forEach ()', prendendo l'argomento printjson per visualizzare un risultato nel formato JSON. Il risultato che viene visualizzato nella shell mostra un totale di 4 documenti nella raccolta che sono mostrati nella seguente immagine di output:



test > db.data.find ( ) .per ciascuno ( printjson )





Proviamo l'operatore “$max” nel comando update di MongoDB per modificare i record già inseriti. Pertanto, updateOne() viene utilizzato qui per modificare solo un singolo record della raccolta di 'dati' come un record specifico in cui il campo 'id' ha un valore di '2'. L'operatore '$max' viene applicato al campo 'Stipendio' della raccolta 'dati' per verificare se il campo 'Stipendio' ha un valore maggiore di 55000. In caso contrario, aggiornare il record con 55000. Il risultato di output per questo query della funzione updateOne () che mostra un conteggio delle modifiche '0' poiché il record '2' ha un valore salariale inferiore a 55000.

test > db.data.updateOne ( { id: 2 } , { $max : { Stipendio: 55000 } } )



Dopo questo aggiornamento, proviamo la stessa query della funzione 'find ()' per visualizzare il risultato modificato sulla shell della riga di comando di MongoDB. Ma otteniamo lo stesso output che ottenevamo prima di usare l'istruzione 'update'. Non è stato apportato alcun cambiamento perché il valore 77000 è maggiore di 55000.

test > db.data.find ( ) .per ciascuno ( printjson )

Proviamo ancora una volta la stessa query updateOne() con una piccola modifica. Questa volta, proviamo il valore maggiore che è '85000' rispetto al valore '77000' che risiede già nel campo 'Stipendio' della raccolta 'dati' per fare la differenza nel nostro output. L'output mostra il conteggio delle modifiche '1' questa volta poiché il valore '85000' sostituisce il valore già residente di '77000' nel campo dopo che il confronto è avvenuto solo a causa dell'operatore '$max' in questa query.

test > db.data.updateOne ( { id: 2 } , { $max : { Stipendio: 85000 } } )

Dopo aver sostituito con successo il valore più piccolo di '77000' con un nuovo valore di '85000' tramite l'operatore '$max' di MongoDB, finalmente utilizziamo la funzione 'find()' nell'istruzione 'db' per verificare questo aggiornamento, se è stato aggiornato correttamente o meno. L'output mostra che il valore nel campo 'Stipendio' di un secondo record in questa raccolta è perfettamente aggiornato.

test > db.data.find ( ) .per ciascuno ( printjson )

Esempio 2:

Passiamo a un altro esempio per utilizzare l'operatore '$max' in MongoDB. Questa volta, eliminiamo l'operatore '$max' per raggruppare e visualizzare i record univoci di una raccolta se sono presenti duplicati per gli stessi valori di campo. Per questo, inseriamo altri 2 record nella raccolta 'dati' di un database 'test'. Questi record contengono gli stessi 2 valori nel campo “Nome” che sono anche nei 4 record già inseriti e il resto è diverso. Per inserire i record, utilizziamo la stessa istruzione 'db' che contiene la funzione 'insertMany' per aggiornare la raccolta 'dati'.

test > db.data.insertMany ( [ { 'id' : 5 , 'Nome' : 'Bravo' , 'Stipendio' : 35000 , 'Età' : Quattro cinque } ,
{ 'id' : 6 , 'Nome' : 'Falco' , 'Stipendio' : 67000 , 'Età' : 33 } ] )

L'istruzione viene eseguita correttamente.

Ora che i 2 nuovi record sono stati aggiunti, puoi anche visualizzarli utilizzando la stessa funzione 'find' nell'istruzione 'db' seguita dalla funzione 'forEach'. Il seguente output di visualizzazione nell'immagine mostra i 2 nuovi record alla fine di questa raccolta:

test > db.data.find ( ) .per ciascuno ( printjson )

Dopo aver visualizzato i 6 record di raccolta “dati”, siamo pronti per eseguire la funzione aggregata su di essi. Pertanto, la funzione 'aggregate' viene utilizzata nella seguente query elencata. Con questa funzione, utilizziamo l'operatore '$group' per raggruppare il record di una raccolta di 'dati' in base ai nomi univoci del campo 'id' e del campo 'Stipendio'. L'operatore '$max' viene applicato al campo 'Stipendio' dei record per ottenere i valori massimi da visualizzare. Ottieni il massimo valore dal campo 'Stipendio' in base ai nomi duplicati nel campo 'Nome' che viene utilizzato come 'id' per visualizzare questo raggruppamento. Vengono visualizzati un totale di 4 record. Il valore più piccolo (dai record duplicati) viene ignorato mentre viene visualizzato il valore più grande.

db.data.aggregate ( [ { $gruppo : { _id: ' $Nome ' , Stipendio: { $max : ' $Stipendio ' } } } ] )

Conclusione

Il primo paragrafo di questa guida ti aiuta a comprendere l'importanza degli operatori utilizzati in MongoDB, in particolare l'operatore '$max' e il suo utilizzo nella shell MongoDB. Questa guida contiene due esempi basati su comandi correlati all'operatore '$max' per dimostrarne lo scopo. Scorrendo le illustrazioni di MongoDB, sarai in grado di eseguire alcune utili transazioni nel database, sia che si tratti di sostituire un record già esistente con un nuovo valore o di visualizzare i record raggruppandoli tramite l'operatore '$max'.