Operatore $ Min di MongoDB

Operatore Min Di Mongodb



Se non sei un nuovo utente di database o programmazione, devi aver provato i programmi e le query che utilizzano gli operatori di confronto - maggiore di, minore di, uguale a, ecc. In MongoDB, dove usiamo l'operatore '$set' per aggiornare un record di campo specifico o aggiungere un nuovo record al database, possiamo anche ottenere lo stesso risultato utilizzando gli operatori di confronto come “$min” e “$max”. In MongoDB, l'operatore '$min' può essere utilizzato all'interno di molte query di funzione per aggiornare un campo specifico quando un nuovo valore è inferiore al valore già inserito. Inoltre, può essere utilizzato per raggruppare e visualizzare i record di una raccolta in un ordine particolare. Questa guida ti aiuta con diversi modi per eliminare l'operatore '$ min' in MongoDB.

Esempio 1:

A partire dalla prima illustrazione, dimostriamo l'uso dell'operatore '$min' in MongoDB per aggiornare un record già inserito utilizzando lo strumento shell MongoDB nel sistema Windows. Pertanto, è necessario disporre di alcuni record già aggiunti al database. Quindi, utilizziamo la query della funzione insertMany() per aggiungere un totale di 5 record nella raccolta 'order' di un database 'test'. Ciascuno dei record inseriti mostrati nell'illustrazione seguente contiene un totale di 4 campi: id, title, saleprice e tax. Questi dati a 5 record vengono inseriti correttamente come da output allegato:

test > db.order.insertMany ( [ { 'id' :01, 'Titolo' : 'Sapone' , 'Prezzo di vendita' : 500 , 'Imposta' : 24 } ,
... { 'id' :02, 'Titolo' : 'shampoo' , 'Prezzo di vendita' : 700 , 'Imposta' : 27 } ,
... { 'id' :03, 'Titolo' : 'Detergente' , 'Prezzo di vendita' : 400 , 'Imposta' : 22 } ,
... { 'id' :04, 'Titolo' : 'Profumo' , 'Prezzo di vendita' : 900 , 'Imposta' : 30 } ,
... { 'id' :05, 'Titolo' : 'Nebbia' , 'Prezzo di vendita' : 850 , 'Imposta' : 27 } ] )







È ora di esaminare il record inserito in un database di 'test'. Per questo, è necessario eliminare il metodo 'find ()' insieme al metodo 'forEach', prendendo 'printjson' come argomento nell'istruzione 'db'. Utilizzando la raccolta denominata 'ordine', abbiamo un record visualizzato sullo schermo.



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



È giunto il momento di utilizzare l'operatore '$min' nella query della funzione 'updateOne' per aggiornare un singolo record dalla raccolta 'order' appena creata. Il campo 'id' viene utilizzato come identificatore univoco per aggiornare un record specifico da un database mentre l'operatore '$min' viene applicato a un campo 'SalePrice' per aggiornare il suo valore a 600 se è inferiore al valore già inserito. Il messaggio di output mostra che la query ha esito positivo ma non vengono effettuati aggiornamenti.





test > db.order.updateOne ( { id: 3 } , { $ min : { Prezzo di vendita: 600 } } )

Il motivo per cui non viene effettuato alcun aggiornamento al campo “SalePrice” del 3° record è che contiene il valore di “400” che è minore di “600″. Pertanto, l'operatore '$min' non aggiorna il valore minimo di '400' con un valore maggiore di '600' secondo la seguente query find() allegata:



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

Apportiamo una piccola modifica alla query di aggiornamento per ottenere un output diverso questa volta. Usiamo la stessa istruzione 'db' che utilizza la funzione 'updateOne' al suo interno per modificare un singolo record di '3'. L'operatore “$min” viene applicato al campo “SalePrice” per impostarne il valore a “300” se il valore di “300” è minore del valore già inserito. Sappiamo che il valore già inserito di “400” del campo SalePrice è maggiore del nuovo valore di “300” da confrontare. Quindi, questa volta sostituisce '400' con '300'. Il messaggio di output mostra l'esecuzione corretta di questa query. Il conteggio modificato = 1 significa che 1 record è stato modificato.

test > db.order.updateOne ( { id: 3 } , { $ min : { Prezzo di vendita: 300 } } )

Dopo aver visualizzato i record di una raccolta 'ordine' dal database 'test' in un formato JSON tramite l'istruzione della funzione 'find ()' nella shell MongoDB, abbiamo scoperto che il terzo record è stato aggiornato correttamente. Il valore 400 del campo “SalePrice” è sostituito dal valore 300.

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

Esempio 2:

All'interno di questa illustrazione di MongoDB, recuperiamo i record di un database specifico raggruppandoli in base all'operatore '$min' in base al valore minimo nei record. Supponiamo di avere gli stessi 5 record nella raccolta 'ordine' del database 'test' di MongoDB e di dover disporre di alcuni dati duplicati nei campi particolari di un database 'test'. Per questo, aggiungiamo più record nella raccolta 'ordine' del database 'test'. Questa volta, inseriamo i valori duplicati per il campo 'Titolo'. Viene utilizzato in una clausola '$group' per formare un gruppo di valori univoci. L'output seguente visualizza gli altri 3 record appena inseriti per il database 'test'. Ora, la raccolta 'ordine' ha valori duplicati per il campo 'Titolo' rispetto ai 5 record precedenti. Il resto usa lo stesso.

Dopo avere un totale di 8 record nella raccolta 'ordine' del database 'test', è il momento di testare l'operatore $min di MongoDB dopo la sua applicazione su un campo specifico che è raggruppato da un altro campo. Il comando di aggregazione allegato riguarda tutto questo. Inizia con la parola chiave 'db' seguita dal nome di una raccolta in un particolare database e dalla funzione aggregate(). La funzione di aggregazione inizia con l'utilizzo della clausola $group di MongoDB che qui viene usata soprattutto per visualizzare i dati in un gruppo riguardante il campo “Title” del database “test” dove il campo “Title” viene preso come chiave univoca .

Allo stesso tempo, il campo del prezzo viene inizializzato separatamente che prende solo il record del valore minimo dal totale di 8 stessi record tramite l'operatore '$min' che viene applicato ad esso. L'output di questa esecuzione della query mostra la visualizzazione di 5 record con un piccolo aggiornamento nella sezione del prezzo. Puoi vedere che non vengono visualizzati record ripetitivi. Qui vengono visualizzati alcuni record di valore unico e minimo.

test > db.ordine.aggregato ( [ { $gruppo : { _id: ' $Titolo ' , prezzo: { $ min : ' $PrezzoSale ' } } } ] )

Conclusione

Questa guida è una raccolta di illustrazioni MongoDB per mostrare un modo semplice possibile utilizzare l'operatore '$ min'. Il paragrafo introduttivo viene utilizzato per discutere lo scopo del suo utilizzo in MongoDB. La prima parte di questo articolo discute come funziona l'operatore '$min' e non funziona per un singolo record in un database, ovvero per aggiornare o inserire un record come valore minimo. Inoltre, gli ultimi esempi ne dimostrano l'uso per raggruppare il record della raccolta come univoco in tutto il database.