MongoDB $Min-Operator

Mongodb Min Operator



Wenn Sie kein neuer Benutzer von Datenbanken oder Programmierung sind, müssen Sie die Programme und Abfragen ausprobiert haben, die die Vergleichsoperatoren verwenden – größer als, kleiner als, gleich usw. In MongoDB, wo wir den Operator „$set“ verwenden einen bestimmten Felddatensatz aktualisieren oder der Datenbank einen neuen Datensatz hinzufügen, können wir dasselbe Ergebnis auch mit den Vergleichsoperatoren wie „$min“ und „$max“ erzielen. In MongoDB kann der „$min“-Operator in vielen Funktionsabfragen verwendet werden, um ein bestimmtes Feld zu aktualisieren, wenn ein neuer Wert kleiner als der bereits eingefügte Wert ist. Es kann auch verwendet werden, um die Aufzeichnungen einer Sammlung in einer bestimmten Reihenfolge zu gruppieren und anzuzeigen. Dieser Leitfaden hilft Ihnen mit verschiedenen Möglichkeiten, den „$min“-Operator in MongoDB abzulegen.

Beispiel 1:

Beginnend mit der ersten Abbildung demonstrieren wir die Verwendung des „$min“-Operators in MongoDB, um einen bereits eingefügten Datensatz mit dem MongoDB-Shell-Tool im Windows-System zu aktualisieren. Daher müssen Sie einige Datensätze haben, die bereits zu Ihrer Datenbank hinzugefügt wurden. Wir verwenden also die Abfrage der Funktion insertMany(), um insgesamt 5 Datensätze in die „Order“-Sammlung einer „Test“-Datenbank hinzuzufügen. Jeder der eingefügten Datensätze, die in der folgenden Abbildung gezeigt werden, enthält insgesamt 4 Felder – id, title, saleprice und tax. Diese 5-Datensatz-Daten werden gemäß der angehängten Ausgabe erfolgreich eingefügt:

Prüfung > db.order.insertMany ( [ { 'Ich würde' :01, 'Titel' : 'Seife' , 'Verkaufspreis' : 500 , 'Steuer' : 24 } ,
... { 'Ich würde' :02, 'Titel' : 'Shampoo' , 'Verkaufspreis' : 700 , 'Steuer' : 27 } ,
... { 'Ich würde' :03, 'Titel' : 'Waschmittel' , 'Verkaufspreis' : 400 , 'Steuer' : 22 } ,
... { 'Ich würde' :04, 'Titel' : 'Parfüm' , 'Verkaufspreis' : 900 , 'Steuer' : 30 } ,
... { 'Ich würde' :05, 'Titel' : 'Nebel' , 'Verkaufspreis' : 850 , 'Steuer' : 27 } ] )







Es ist an der Zeit, sich den eingefügten Datensatz in einer „Test“-Datenbank anzusehen. Dazu müssen Sie die „find()“-Methode zusammen mit der „forEach“-Methode ablegen, wobei Sie „printjson“ als Argument in der „db“-Anweisung verwenden. Unter Verwendung der Sammlung mit dem Namen „Bestellung“ haben wir einen Datensatz auf dem Bildschirm angezeigt.



Prüfung > db.order.find ( ) .für jede ( printjson )



Es ist höchste Zeit, den „$min“-Operator in der Funktionsabfrage „updateOne“ zu verwenden, um einen einzelnen Datensatz aus der gerade erstellten Sammlung „order“ zu aktualisieren. Das „id“-Feld wird als eindeutige Kennung verwendet, um einen bestimmten Datensatz aus einer Datenbank zu aktualisieren, während der „$min“-Operator auf ein „SalePrice“-Feld angewendet wird, um seinen Wert auf 600 zu aktualisieren, wenn er kleiner als der bereits eingefügte Wert ist. Die Ausgabenachricht zeigt, dass die Abfrage erfolgreich war, aber keine Aktualisierungen vorgenommen wurden.





Prüfung > db.order.updateOne ( { Ich würde: 3 } , { $Min : { Verkaufspreis: 600 } } )

Der Grund, warum das Feld „SalePrice“ des dritten Datensatzes nicht aktualisiert wird, ist, dass es den Wert „400“ enthält, der kleiner als „600“ ist. Daher aktualisiert der „$min“-Operator den Mindestwert von „400“ nicht mit einem größeren Wert von „600“ gemäß der folgenden angehängten find()-Abfrage:



Prüfung > db.order.find ( ) .für jede ( printjson )

Nehmen wir eine kleine Änderung an der Aktualisierungsabfrage vor, um diesmal eine andere Ausgabe zu erhalten. Wir verwenden dieselbe „db“-Anweisung, die die „updateOne“-Funktion darin verwendet, um einen einzelnen Datensatz von „3“ zu ändern. Der Operator „$min“ wird auf das Feld „SalePrice“ angewendet, um seinen Wert auf „300“ zu setzen, wenn der Wert von „300“ kleiner als der bereits eingefügte Wert ist. Wir wissen, dass der bereits eingefügte Wert „400“ des SalePrice-Felds größer ist als der neue zu vergleichende Wert „300“. Also ersetzt es diesmal „400“ durch „300“. Die Ausgabenachricht zeigt die erfolgreiche Ausführung dieser Abfrage. Der geänderte Zähler = 1 bedeutet, dass 1 Datensatz geändert wird.

Prüfung > db.order.updateOne ( { Ich würde: 3 } , { $Min : { Verkaufspreis: 300 } } )

Nachdem wir die Datensätze einer „Order“-Sammlung aus der „Test“-Datenbank in einem JSON-Format über die Funktionsanweisung „find()“ in der MongoDB-Shell angezeigt hatten, stellten wir fest, dass der 3. Datensatz erfolgreich aktualisiert wurde. Der Wert 400 des Feldes „SalePrice“ wird durch den Wert 300 ersetzt.

Prüfung > db.order.find ( ) .für jede ( printjson )

Beispiel 2:

In dieser MongoDB-Darstellung rufen wir die Datensätze einer bestimmten Datenbank ab, indem wir sie nach dem „$min“-Operator nach dem Mindestwert in den Datensätzen gruppieren. Angenommen, Sie haben dieselben 5 Datensätze in der „Bestellung“-Sammlung der „Test“-Datenbank von MongoDB und Sie benötigen einige doppelte Daten in den bestimmten Feldern einer „Test“-Datenbank. Dazu fügen wir weitere Datensätze in der „Bestellung“-Sammlung der „Test“-Datenbank hinzu. Dieses Mal fügen wir die doppelten Werte für das Feld „Titel“ ein. Es wird in einer „$group“-Klausel verwendet, um eine Gruppe eindeutiger Werte zu bilden. Die folgende Ausgabe zeigt die neu eingefügten 3 weiteren Datensätze für die „test“-Datenbank. Jetzt hat die Sammlung „Bestellung“ doppelte Werte für das Feld „Titel“ im Vergleich zu den 5 alten Datensätzen. Der Rest verwendet das gleiche.

Nachdem Sie insgesamt 8 Datensätze in der „Order“-Sammlung der „Test“-Datenbank haben, ist es an der Zeit, den $min-Operator von MongoDB nach seiner Anwendung auf ein bestimmtes Feld zu testen, das von einem anderen Feld gruppiert wird. Der angehängte Aggregatbefehl dreht sich alles darum. Es beginnt mit dem Schlüsselwort „db“, gefolgt vom Namen einer Sammlung in einer bestimmten Datenbank und der Funktion „aggregat()“. Die Aggregatfunktion beginnt mit der Verwendung der $group-Klausel von MongoDB, die hier speziell verwendet wird, um die Daten in einer Gruppe anzuzeigen, die das „Title“-Feld der „test“-Datenbank betrifft, wobei das „Title“-Feld als eindeutiger Schlüssel verwendet wird .

Gleichzeitig wird das Preisfeld separat initialisiert, das nur den Mindestwert-Datensatz aus den insgesamt 8 gleichen Datensätzen über den darauf angewendeten „$min“-Operator nimmt. Die Ausgabe dieser Abfrageausführung zeigt die Anzeige von 5 Datensätzen mit einer kleinen Aktualisierung im Preisabschnitt. Sie sehen, dass keine sich wiederholenden Datensätze angezeigt werden. Hier werden einige Einzel- und Kleinstwert-Datensätze angezeigt.

Prüfung > db.order.aggregate ( [ { $gruppe : { _Ich würde: ' $Titel ' , Preis: { $Min : ' $Verkaufspreis ' } } } ] )

Fazit

Dieser Leitfaden ist eine Sammlung von MongoDB-Illustrationen, um eine einfache Möglichkeit zur Verwendung des „$min“-Operators aufzuzeigen. Der Einführungsabsatz wird verwendet, um den Zweck seiner Verwendung in MongoDB zu erörtern. Im ersten Teil dieses Artikels wird erläutert, wie der „$min“-Operator für einen einzelnen Datensatz in einer Datenbank funktioniert und nicht funktioniert, d. h. einen Datensatz als Mindestwert zu aktualisieren oder einzufügen. Außerdem demonstrieren die letzten Beispiele seine Verwendung, um den Sammlungsdatensatz in der gesamten Datenbank als eindeutig zu gruppieren.