Esempio 1:
A partire dall'illustrazione per discutere e come funziona l'operatore "$ max" nella shell Mongodb, dobbiamo avere una raccolta denominata "dati" che deve essere già creata. Per creare questa raccolta, dobbiamo aggiungere alcuni record direttamente senza l'uso di alcuna istruzione "create". L'istruzione di inserimento è sufficiente per creare una raccolta e aggiungere i record. Usiamo la funzione "InsertMany" nella query per aggiungere quattro record, ciascuno con 4 campi di diversi tipi.
Test> db.dati.InsertMany (["Id": 1, "Nome": "Bravo", "Stipendio": 65000, "Age": 44,
... "id": 2, "nome": "Stephen", "Stipendio": 77000, "Age": 55,
... "id": 3, "nome": "Maria", "stipendio": 42000, "età": 27,
... "id": 4, "nome": "hawkin", "stipendio": 58000, "età": 33])
Il comando insert ha esito positivo e il messaggio di output mostra che i record vengono aggiunti.
Dopo aver inserito i record nella raccolta di "dati" del nostro MongoDB, è tempo di vedere quei record sulla shell. Pertanto, eseguiamo l'istruzione della funzione "Find ()" sulla CLI MongoDB seguita dalla funzione "Foreach ()", prendendo l'argomento Printjson per visualizzare un risultato nel formato JSON. Il risultato visualizzato nella shell mostra un totale di 4 documenti nella raccolta che sono mostrati nella seguente immagine di output:
Test> db.dati.Trovare().foreach (printjson)
Proviamo l'operatore "$ max" nel comando di aggiornamento di MongoDB per modificare i record già inseriti. Pertanto, l'aggiornamento () viene utilizzato qui per modificare solo un singolo record di raccolta "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 superiore a 55000. In caso contrario, aggiorna il record con 55000. Il risultato di output per questa query di funzione UpdateOne () che mostra un conteggio di modifica "0" come record "2" ha meno di 55000 valore salariale.
Test> db.dati.UpdateOne (id: 2, $ max: stipendio: 55000)
Dopo questo aggiornamento, proviamo la stessa query di funzione "Find ()" per visualizzare il risultato modificato sulla shell di comando MongoDB. Ma otteniamo lo stesso output che abbiamo ottenuto prima di utilizzare l'istruzione "Aggiorna". Non ci sono stati cambiamenti perché il valore 77000 è maggiore di 55000.
Test> db.dati.Trovare().foreach (printjson)
Proviamo ancora una volta la stessa query di aggiornamento () 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 il confronto è avvenuto solo a causa dell'operatore "$ max" in questa query.
Test> db.dati.Aggiornamento (id: 2, $ max: stipendio: 85000)
Dopo aver sostituito con successo il valore più piccolo di "77000" con un nuovo valore di "85000" attraverso l'operatore "$ max" di MongoDB, utilizziamo finalmente la funzione "Trova ()" nell'istruzione "DB" per verificare questo aggiornamento, Che sia aggiornato correttamente o meno. L'output mostra che il valore nel campo "stipendio" di un secondo record in questa collezione è perfettamente aggiornato.
Test> db.dati.Trovare().foreach (printjson)
Esempio 2:
Saltiamo ad 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 ci sono duplicati per gli stessi valori di campo. Per questo, inseriamo altri 2 record nella raccolta "dati" di un database "test". Questi record contengono i 2 stessi 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 la raccolta "dati" per essere aggiornati.
Test> db.dati.InsertMany (["Id": 5, "Nome": "Bravo", "Stipendio": 35000, "Age": 45,
... "id": 6, "nome": "Hawkin", "stipendio": 67000, "età": 33])
L'istruzione viene eseguita correttamente.
Ora che vengono aggiunti i 2 nuovi record, puoi anche visualizzarli utilizzando la stessa funzione "Trova" 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.dati.Trovare().foreach (printjson)
Dopo aver visualizzato i 6 record di raccolta "dati", siamo pronti per eseguire la funzione aggregata su di essa. Quindi, la funzione "aggregata" viene utilizzata nella seguente query elencata. Con questa funzione, utilizziamo l'operatore "$ gruppo" per raggruppare il record di una raccolta di "dati" in base ai nomi univoci del campo "ID" e al campo "stipendio". L'operatore "$ max" viene applicato al campo "stipendio" dei record per ottenere i valori massimi da visualizzare. Ottieni il più grande valore dal campo salariale "secondo i nomi duplicati nel campo" Nome "che viene utilizzato come" ID "per il visualizzazione di 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.dati.Aggregate ([$ Group: _id: "$ name", 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 sui comandi correlati all'operatore "$ max" per dimostrare il suo scopo. Passando attraverso le illustrazioni di MongoDB, sarai in grado di eseguire alcune transazioni utili nel database, sia che si tratti di sostituire un record già esistente con un nuovo valore o visualizzare i record raggruppandoli tramite l'operatore "$ max".