MongoDB $Max-Operator

Mongodb Max Operator



MongoDB hat viele Operatoren entwickelt, um spezielle Transaktionen wie das Aktualisieren der Datensätze, das Hinzufügen eines neuen Datensatzes und das Anzeigen der Datensätze unter einer bestimmten Bedingung durchzuführen. Einer dieser Operatoren ist der „$max“-Operator, der verwendet wird, um nach dem größten Wert im Datensatz zu suchen. Abgesehen davon können wir es verwenden, um den kleinsten Wert mit einem neuen größten Wert zu aktualisieren, nachdem wir sie in der Funktionsanweisung „Aktualisieren“ verglichen haben. Die andere Verwendung des „$max“-Operators besteht darin, die Datensätze einer bestimmten Sammlung so zu gruppieren und anzuzeigen, dass nur der größte Wert angezeigt wird, während der kleinste Wert ignoriert wird, wenn es einige doppelte Datensätze in der Datenbank gibt. In diesem Leitfaden verwenden wir einfache Abfragebeispiele, um die zuvor erwähnten Verwendungen des „$max“-Operators im MongoDB-Befehlszeilendienstprogramm auf unserer Windows-Plattform zu erörtern.

Beispiel 1:

Beginnend mit der zu besprechenden Abbildung und der Funktionsweise des „$max“-Operators in der MongoDB-Shell benötigen wir eine Sammlung mit dem Namen „data“, die bereits erstellt werden muss. Um diese Sammlung zu erstellen, müssen wir einige Datensätze direkt hinzufügen, ohne die Verwendung einer „Erstellungs“-Anweisung. Die Einfügeanweisung reicht aus, um eine Sammlung zu erstellen und die Datensätze darin hinzuzufügen. Wir verwenden die Funktion „insertMany“ in der Abfrage, um vier Datensätze mit jeweils 4 Feldern unterschiedlichen Typs hinzuzufügen.

Prüfung > db.data.insertMany ( [ { 'Ich würde' : einer , 'Name' : 'Bravo' , 'Gehalt' : 65000 , 'Das Alter' : 44 } ,
... { 'Ich würde' : 2 , 'Name' : 'Stephan' , 'Gehalt' : 77000 , 'Das Alter' : 55 } ,
... { 'Ich würde' : 3 , 'Name' : 'Maria' , 'Gehalt' : 42000 , 'Das Alter' : 27 } ,
... { 'Ich würde' : 4 , 'Name' : 'Falken' , 'Gehalt' : 58000 , 'Das Alter' : 33 } ] )







Der Einfügebefehl ist erfolgreich und die Ausgabenachricht zeigt, dass die Datensätze hinzugefügt wurden.



Nachdem Sie die Datensätze in die „Daten“-Sammlung unserer MongoDB eingefügt haben, ist es an der Zeit, diese Datensätze auf der Shell anzuzeigen. Daher führen wir die Funktionsanweisung „find()“ auf der MongoDB-Cli aus, gefolgt von der Funktion „forEach()“, wobei wir das Argument printjson verwenden, um ein Ergebnis im JSON-Format anzuzeigen. Das Ergebnis, das in der Shell angezeigt wird, zeigt insgesamt 4 Dokumente in der Sammlung, die im folgenden Ausgabebild angezeigt werden:



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





Probieren wir den „$max“-Operator im Update-Befehl von MongoDB aus, um die bereits eingefügten Datensätze zu ändern. Daher wird updateOne() hier verwendet, um nur einen einzelnen Datensatz der „Daten“-Sammlung zu ändern, wie z. B. einen bestimmten Datensatz, bei dem das Feld „id“ den Wert „2“ hat. Der „$max“-Operator wird auf das „Gehalt“-Feld der „Daten“-Erfassung angewendet, um zu prüfen, ob das „Gehalt“-Feld einen Wert hat, der größer als 55000 ist. Wenn nicht, aktualisieren Sie den Datensatz mit 55000. Das Ausgabeergebnis dafür updateOne()-Funktionsabfrage, die einen „0“-Änderungszähler anzeigt, da Datensatz „2“ weniger als 55000 Gehaltswert hat.

Prüfung > db.data.updateOne ( { Ich würde: 2 } , { $max : { Gehalt: 55000 } } )



Nach diesem Update versuchen wir die gleiche „find()“-Funktionsabfrage, um das geänderte Ergebnis auf der MongoDB-Befehlszeilen-Shell anzuzeigen. Aber wir erhalten die gleiche Ausgabe, die wir vor der Verwendung der „update“-Anweisung erhalten haben. Es gab keine Änderung, da der Wert 77000 größer als 55000 ist.

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

Lassen Sie uns dieselbe updateOne()-Abfrage noch einmal mit einer kleinen Modifikation ausprobieren. Dieses Mal versuchen wir, den größeren Wert „85000“ als den Wert „77000“ zu verwenden, der sich bereits im Feld „Gehalt“ der „Daten“-Erfassung befindet, um einen Unterschied in unserer Ausgabe zu machen. Die Ausgabe zeigt dieses Mal den Änderungszähler „1“, da der Wert „85000“ den bereits vorhandenen Wert „77000“ im Feld ersetzt, nachdem der Vergleich nur wegen des Operators „$max“ in dieser Abfrage stattgefunden hat.

Prüfung > db.data.updateOne ( { Ich würde: 2 } , { $max : { Gehalt: 85000 } } )

Nachdem wir den kleineren Wert „77000“ erfolgreich durch den neuen Wert „85000“ durch den „$max“-Operator von MongoDB ersetzt haben, verwenden wir schließlich die „find()“-Funktion in der „db“-Anweisung, um nach diesem Update zu suchen. ob es erfolgreich aktualisiert wurde oder nicht. Die Ausgabe zeigt, dass der Wert im Feld „Gehalt“ eines zweiten Datensatzes in dieser Sammlung perfekt aktualisiert ist.

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

Beispiel 2:

Lassen Sie uns zu einem anderen Beispiel springen, um den „$max“-Operator in MongoDB zu verwenden. Dieses Mal verzichten wir auf den „$max“-Operator, um die eindeutigen Datensätze einer Sammlung zu gruppieren und anzuzeigen, wenn es Duplikate für dieselben Feldwerte gibt. Dazu fügen wir 2 weitere Datensätze in die „Daten“-Sammlung einer „Test“-Datenbank ein. Diese Datensätze enthalten die 2 gleichen Werte im Feld „Name“, die auch in den bereits eingefügten 4 Datensätzen enthalten sind, und der Rest ist unterschiedlich. Um die Datensätze einzufügen, verwenden wir dieselbe „db“-Anweisung, die die „insertMany“-Funktion enthält, damit die „data“-Sammlung aktualisiert wird.

Prüfung > db.data.insertMany ( [ { 'Ich würde' : 5 , 'Name' : 'Bravo' , 'Gehalt' : 35000 , 'Das Alter' : Vier fünf } ,
{ 'Ich würde' : 6 , 'Name' : 'Falken' , 'Gehalt' : 67000 , 'Das Alter' : 33 } ] )

Die Anweisung wird erfolgreich ausgeführt.

Nachdem die 2 neuen Datensätze hinzugefügt wurden, können Sie sie auch mit der gleichen „find“-Funktion in der „db“-Anweisung gefolgt von der „forEach“-Funktion anzeigen. Die folgende Anzeigeausgabe im Bild zeigt die 2 neuen Datensätze am Ende dieser Sammlung:

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

Nachdem wir die 6 Aufzeichnungen der „Daten“-Sammlung angezeigt haben, sind wir bereit, die Aggregatfunktion darauf auszuführen. Daher wird die „Aggregat“-Funktion in der nachfolgend aufgelisteten Abfrage verwendet. Mit dieser Funktion verwenden wir den „$group“-Operator, um den Datensatz einer „Daten“-Sammlung nach den eindeutigen Namen der Felder „id“ und „Gehalt“ zu gruppieren. Der Operator „$max“ wird auf das Feld „Gehalt“ der Datensätze angewendet, um die anzuzeigenden Höchstwerte zu erhalten. Holen Sie sich den größten Wert aus dem Feld „Gehalt“ gemäß den doppelten Namen im Feld „Name“, das als „ID“ verwendet wird, damit diese Gruppierung angezeigt wird. Es werden insgesamt 4 Datensätze angezeigt. Der kleinste Wert (aus den doppelten Datensätzen) wird ignoriert, während der größte Wert angezeigt wird.

db.data.aggregate ( [ { $gruppe : { _Ich würde: ' $Name ' , Gehalt: { $max : ' $Gehalt ' } } } ] )

Fazit

Der erste Absatz dieses Leitfadens hilft Ihnen, die Bedeutung der in MongoDB verwendeten Operatoren zu verstehen, insbesondere des „$max“-Operators und seiner Verwendung in der MongoDB-Shell. Dieses Handbuch enthält zwei befehlsbasierte Beispiele, die sich auf den Operator „$max“ beziehen, um seinen Zweck zu demonstrieren. Wenn Sie die MongoDB-Illustrationen durchgehen, können Sie einige nützliche Transaktionen in der Datenbank durchführen, sei es das Ersetzen eines bereits vorhandenen Datensatzes durch einen neuen Wert oder das Anzeigen der Datensätze durch Gruppieren über den „$max“-Operator.