Operatori MongoDB $ min, $ max e $ avg

Operatori MongoDB $ min, $ max e $ avg
MongoDB è molto vasto in termini di diversi operatori per scopi speciali. Questi operatori possono essere applicati a stringhe, numeri interi e altri tipi di valori o campi. Ci sono anche alcuni operatori di confronto disponibili come gli operatori Min e Max. L'operatore MongoDB Min viene utilizzato per trovare il valore più basso in un campo specificato di una raccolta mentre l'operatore MongoDB Max viene utilizzato per trovare il valore più alto in un campo specificato di una raccolta. Insieme a ciò, l'operatore AVG MongoDB viene lanciato per calcolare il valore medio di un campo specificato. In questa guida, discuteremo dell'uso di ciascun operatore uno per uno.

Crea una collezione

Il "db.Il comando CreateCollection ("Order") "viene impiegato per fare una nuova raccolta in un database MongoDB. La raccolta si chiama "Ordine" in questo caso. Quando viene eseguito il comando, l'output è "ok: 1". Ciò indica che la raccolta viene effettivamente creata. Il campo "OK" nell'output è un indicatore di stato che restituisce un valore di 1 se l'operazione ha esito positivo e un valore di 0 se non lo è. È importante notare che se una raccolta con lo stesso nome esiste già nel database, il comando restituisce un errore.

Test> db.CreateCollection ("Ordine")
ok: 1

Inserire i documenti

Il "db.Ordine.Il comando insertMany () "inserisce più documenti nella raccolta" Ordine "nel database" Test ". I documenti inseriti sono una serie di oggetti che contengono campi "ID", "Titolo" e "Price". I documenti contengono gli stessi valori per i campi "Title" in alcuni record e contiene record univoci nel campo "Price". L'output del comando è un documento che conferma che l'inserimento è riconosciuto (riconosciuto: vero) e mostra gli oggetti unici che sono assegnati a ciascuno dei documenti inseriti.

Test> db.Ordine.InsertMany ([id: 1, titolo: "SOAP", prezzo: 44, id: 2, titolo: "shampo", prezzo: 94, id: 3, titolo: "facewash", prezzo: 120 , id: 4, titolo: "SOAP", prezzo: 65, id: 5, titolo: "shampo", prezzo: 78])

riconosciuto: vero,
inseritedids:
'0': objectId ("63c4eec7ac8011ecc27d7a40"),
'1': objectId ("63c4eec7ac8011ecc27d7a41"),
'2': objectId ("63c4eec7ac8011ecc27d7a42"),
'3': objectId ("63c4eec7ac8011ecc27d7a43"),
'4': objectId ("63c4eec7ac8011ecc27d7a44")

Visualizza i record

Il "db.Ordine.Find () "Il comando viene eseguito nella shell Mongodb e viene utilizzato per recuperare tutti i documenti nella raccolta" ordine ". Le parentesi graffe vuote indicano che non vengono utilizzati criteri di query specifici per filtrare i documenti, quindi tutti i documenti nella raccolta vengono restituiti. L'output del comando è un elenco di oggetti JSON, ciascuno che rappresenta un documento nella raccolta "ordine".

Test> db.Ordine.Trovare()
[
_id: objectId ("63c4eec7ac8011ecc27d7a40"), id: 1, titolo:'aps ', prezzo: 44,
_id: objectId ("63c4eec7ac8011ecc27d7a41"), id: 2, titolo: 'shampo', prezzo: 94,
_id: objectId ("63c4eec7ac8011ecc27d7a42"), id: 3, titolo: 'facewash', prezzo: 120,
_id: objectId ("63c4eec7ac8011ecc27d7a43"), id: 4, titolo:'aps ', prezzo: 65,
_id: objectId ("63c4eec7ac8011ecc27d7a44"), id: 5, titolo: 'shampo', prezzo: 78
"

Esempio 1: Operatore MongoDB $ min

Nel primo esempio di questo articolo, discuteremo dell'uso dell'operatore "min" con l'aiuto di semplici illustrazioni mongodb. Il seguente comando utilizza la funzione aggregata MongoDB per raggruppare i documenti nella raccolta "Ordine" per campo "Titolo". Quindi, calcola il "prezzo" minimo all'interno di ciascun gruppo. Il primo argomento che viene passato alla funzione aggregata è una serie di fasi della pipeline. In questo caso, esiste una sola fase di pipeline che utilizza l'operatore del gruppo $ per raggruppare i documenti in base al campo "Titolo" che è specificato come il campo "_id" nell'operatore $ Group. L'operatore calcola anche il "prezzo" minimo all'interno di ciascun gruppo e lo assegna al campo "minprice".

L'output risultante è un array di oggetti, con ciascun oggetto che rappresenta un gruppo di documenti con lo stesso campo "titolo". L'output mostra che ci sono tre gruppi di documenti con diversi campi "titolo": "sapone", "shampoo" e "facewash". Il prezzo minimo per ciascun gruppo è 44, 78 e 120, rispettivamente.

Test> db.Ordine.Aggregate ([$ Group: _id: "$ title", minprice: $ min: "$ price"])
[
_id: 'Soap', Minprice: 44,
_id: 'shampo', minprice: 78,
_id: 'facewash', minprice: 120
"

Esempio 2: MongoDB $ Max Operator

Ecco alcuni esempi per discutere e utilizzare l'operatore "Max" in MongoDB. L'istruzione allegata utilizza la funzione aggregata MongoDB per raggruppare la raccolta degli ordini per campo "Titolo". All'interno del gruppo, crea due nuovi campi: "PriceWithTax" e "MaxPrice". Il campo "PriceWithTax" utilizza l'operatore $ max per trovare il valore massimo del risultato dell'operatore $ ADD. L'operatore $ ADD aggiunge 10 al campo "Prezzo" per ciascun documento nel gruppo. Ciò significa che il campo "PriceWithTax" ha il valore del campo "prezzo" più alto più 10 per ogni gruppo di documenti con lo stesso "titolo".

Il campo "MaxPrice" utilizza l'operatore $ max per trovare il valore massimo del campo "prezzo" per ciascun gruppo di documenti con lo stesso "titolo". L'output del comando è una matrice di documenti che mostra i campi "Titolo", "PriceWithTax" e "MaxPrice" per ciascun gruppo di documenti nella raccolta degli ordini. I documenti sono ordinati dal campo "titolo". Ad esempio, il primo documento nell'output mostra che il "titolo" è "shampo", il "prezzowithtax" è 104 (il valore di campo "prezzo" più alto più 10 per tutti i documenti con il "titolo" di "shampo"), e il "MaxPrice" è 94 (il valore di campo "prezzo" più alto per tutti i documenti con il "titolo" di "shampo").

Test> db.Ordine.Aggregate ([$ Group: _id: "$ title", PriceWithTax: $ max: $ ADD: ["$ PREZZO", 10], maxprice: $ max: "$ price"] )
[
_id: 'shampo', pricewithtax: 104, maxprice: 94,
_id: 'facewash', pricewithtax: 130, maxprice: 120,
_id: 'Soap', PriceWithTax: 75, MaxPrice: 65
"

Esempio 3: Operatore MongoDB $ AVG

Nel nostro ultimo illustrazione di questa guida, copriamo l'operatore "AVG" MongoDB per scoprire il valore medio da un campo specifico di raccolta. La funzione aggregata MongoDB viene utilizzata per raggruppare i documenti all'interno della raccolta "Ordine" per il loro campo "Titolo". All'interno di ciascun gruppo, calcola il valore medio del "prezzo" e crea un nuovo campo chiamato "AVGPRICE" per archiviare quel valore. Il risultato di questo comando è un array di oggetti, con ciascun oggetto che rappresenta un gruppo di documenti con lo stesso valore di "titolo". L'oggetto contiene il valore del "titolo" come campo "_id" e il valore "prezzo" medio calcolato come campo "avgprice".

In questo caso, ci sono tre gruppi: "sapone", "shampo" e "facewash". Il prezzo medio per il gruppo "sapone" è 54.5. Il prezzo medio per il gruppo "shampo" è 86. E il prezzo medio per il gruppo "Facewash" è 120, come segue:

Test> db.Ordine.Aggregate ([$ Group: _id: "$ title", avgprice: $ avg: "$ price"])
[
_id: 'soap', avgprice: 54.5,
_id: 'shampo', avgprice: 86,
_id: 'facewash', avgprice: 120
"

Conclusione

L'introduzione del nostro articolo spiega gli usi e le differenze dei tre operatori molto comuni e più usati in MongoDB - The Min, Max e AVG Operatori. Facendo tutti gli esempi, abbiamo spiegato i metodi per utilizzare questi operatori in tre illustrazioni separate. La prima illustrazione spiega l'operatore Min, la seconda illustrazione spiega il "max", mentre la terza illustrazione spiega l'utilizzo dell'operatore "AVG". Se hai una raccolta di documenti che rappresentano alcuni valori numerici, puoi provare gli operatori Min, Max e AVG per trovare i valori più bassi, più alti e medi.