MongoDB Sortieren von Abfrageergebnissen

Mongodb Sortieren Von Abfrageergebnissen



Fast alle Datenbanksysteme priorisieren das Sortieren von Daten, bevor sie abgerufen werden, was sie von anderen Datenspeichermethoden unterscheidet. MongoDB hat auch verschiedene Möglichkeiten, um festzulegen, wie die Daten sortiert werden sollen. Meistens verwenden wir die Methode sort(), um die Reihenfolge festzulegen, in der das Dokument erscheint. Die Reihenfolge der Sequenz wird als Parameter an die Methode sort() übergeben. Auf das eine oder die mehreren Felder, aus denen sich die sort()-Methode zusammensetzt, folgt häufig entweder ein Wert „1“ oder ein „-1“. Die Methode sort() macht eine Abfrage lesbarer, was das Verständnis einer bestimmten Sammlung verbessert.

Wie sortiert MongoDB Abfrageergebnisse?

Die Sortiermethode nimmt das Feld und seinen zugeordneten Wert als einen einzigen Parameter. Die Sortiermethode akzeptiert Parameter im JSON-Format wie {Field: Value}. Die mehreren Felder und Werte können auch in die Methode sort() eingegeben werden, um die sortierten Dokumente aus der Sammlung zu erhalten. Betrachten Sie das folgende Dokument, in dem wir viele andere Dokumente in unsere Datenbank eingefügt haben. Der Name dieser MongoDB-Datenbank lautet „Employees“. Die Sammlung „Mitarbeiter“ enthält alle Informationen der unten angezeigten Mitarbeiter.

db.Employees.insertMany([
{
'Name': 'Robert',
'Geburtsdatum': '14-05-1993',
'Geschlecht männlich',
'Email': ' [E-Mail-geschützt] ',
'Abteilung': 'Sicherheit',
'Gehalt': 5000
},
{
'name': 'kyle',
'Geburtsdatum': '31-05-1999',
'Geschlecht Weiblich',
'Email': ' [E-Mail-geschützt] ',
'Abteilung': 'IT',
'Gehalt': 6200
},
{
'name': 'Matthäus',
'Geburtsdatum': '26-04-1993',
'Geschlecht männlich',
'Email': ' [E-Mail-geschützt] ',
'Abteilung': 'Konten',
'Gehalt': 3500
},
{
'Name': 'Kevin',
'Geburtsdatum': '14-07-1991',
'Geschlecht männlich',
'Email': ' [E-Mail-geschützt] ',
'Abteilung': 'Sicherheit',
'Gehalt': 4500
},

{
'name': 'Julia',
'Geburtsdatum': '09-12-2000',
'Geschlecht Weiblich',
'Email': ' [E-Mail-geschützt] ',
'Abteilung': 'IT',
'Gehalt': 2500
}
])

Die Sammlung „Mitarbeiter“ wird mit den bereitgestellten Dokumenten eingefügt, deren Bestätigung in der folgenden Ausgabe angezeigt wird. Wir werden dieses Sammlungsdokument verwenden, um die Funktionalität der Sortierabfrageergebnisse zu zeigen.









Beispiel Nr. 1: MongoDB unsortierte Sammlung

Wenn die Suchanfrage mit der Methode find() ausgeführt wird, liefert sie immer eine unsortierte Sammlung von Dokumenten. Dies kann mit den unten bereitgestellten Abfrageergebnissen klarer werden.



>db.Mitarbeiter.find({},{_id:0})

Hier haben wir eine Abfrage der Sammlung „Employee“ mit der Methode find(). Die Methode find() übernimmt den leeren Parameter zusammen mit der „_id:0“. Für ein einfacheres Ergebnis wird die Dokument-ID mit dem Operator „_id:0“ entfernt. Standardmäßig erhalten wir unsortierte Sammlungen, wenn die Abfrage mit der Methode find() durchsucht wird. Die unten abgerufene Ausgabe sind alle unsortierten Dokumente in einer Weise, die wir zum Zeitpunkt des Einfügens haben.





Beispiel Nr. 2: MongoDB Sortiert Abfrageergebnisse in aufsteigender Reihenfolge

Die sortierte Sammlung in MongoDB wird mithilfe der Methode sort() erhalten, die nach der Methode find() platziert werden sollte. Die Methode sort() in MongoDB übernimmt den Parameter, der im Feldnamen und in der Sortierreihenfolge des Dokuments enthalten ist. Als Parameter müssen wir „1“ in das Feld eintragen, da wir in diesem speziellen Beispiel die Dokumente in aufsteigender Reihenfolge abrufen. Die folgenden Ergebnisse in der Sortierabfrage in aufsteigender Reihenfolge.



>db.Mitarbeiter.find().sort({name:1})

Hier haben wir die Methode sort() nach der Suchabfrage find verwendet. Die Methode sort() wird verwendet, um das Feld „name“ in aufsteigender Reihenfolge zu sortieren, da neben dem angegebenen Feld der Wert „1“ platziert wird. Beachten Sie, dass die Sammlung nicht sortiert wird, wenn die Methode sort() nicht mit einem parametrischen Wert angegeben wird. Die Ausgabe der Methode sort() wird in der Standardreihenfolge abgerufen. Die Ergebnisse der sort()-Methode nach Namensfeld in aufsteigender Reihenfolge werden in der folgenden MongoDB-Shell angezeigt.

Beispiel Nr. 3: MongoDB Sortiert Abfrageergebnisse in absteigender Reihenfolge

Jetzt zeigen wir die Sortierabfrageergebnisse der MongoDB in absteigender Reihenfolge. Diese Art von Abfrage ist die gleiche wie im obigen Beispiel, jedoch mit einem Unterschied. Für absteigende Reihenfolge nimmt die Methode sort() den Wert „-1“ gegen den Spaltennamen. Die Ergebnisse der Sortierabfrage in absteigender Reihenfolge sind unten angegeben.

>db.Employees.find({},{'email':1,_id:0}).sort({'email':-1})

Hier beginnt die Suchabfrage mit der Methode find(), die das Feld „E-Mail“ findet und nur die Werte des Felds „E-Mail“ zurückgibt. Als nächstes haben wir die Methode sort() angegeben, die zum Sortieren des Felds „E-Mail“ verwendet wird, und der Wert „-1“ daneben zeigt an, dass die erhaltenen Sortierergebnisse in absteigender Reihenfolge sein werden. Die Ergebnisse der Sortierabfrage in absteigender Reihenfolge werden nach der Ausführung in der MongoDB-Shell abgerufen.

Beispiel Nr. 4: MongoDB Sortiert Abfrageergebnisse für mehrere Felder

Wir können die mehreren Felder in MongoDB mit der Methode sort() sortieren. Die zu sortierenden Felder sollten in der Methode sort() deklariert werden. Die Sortierung basiert auf der Deklarationsreihenfolge der Felder und die Sortierreihenfolge wird von links nach rechts geprüft. Die Abfrage zum Sortieren der Mehrfachfelder sollte wie folgt aussehen:

>db.Employees.find({},{_id:0}).sort({'name':1,'salary':1})

Hier wird die Methode sort() mit den zu sortierenden Feldern „Name“ und „Gehalt“ übergeben. Das Feld „name“ aus der „Employee“-Collection wird zuerst sortiert, da es das erste Argumentfeld der sort()-Methode ist. Dann sortiert die Methode sort() das zweite Argumentfeld „Gehalt“. Die Reihenfolge beider Felder ist „1“, was bedeutet, dass die Sortierung in aufsteigender Reihenfolge erfolgt. Die Ausgabe für mehrere Felder der Sortierabfrage wird in der unten angegebenen Sortierreihenfolge generiert.

Beispiel Nr. 5: MongoDB-Sortierungsergebnisse mit Limit-Methode

Darüber hinaus kann die sort()-Methode auch mit der limit()-Methode kombiniert werden, die die begrenzte Anzahl der sortierten Dokumente durch diese Suchanfrage angibt. Die Methode limit() erfordert als Parameter eine Ganzzahl, die die Anzahl der Dokumente begrenzt, die in den Ausgabesatz aufgenommen werden sollen. Darunter wird die Suchabfrage eingestellt, die zuerst das Dokument sortiert und dann die angegebenen Grenzdokumente liefert.

>db.Employees.find({},{_id:0}).sort({'department':1,'DOB':1}).limit(4).pretty()

Hier haben wir die Suchanfrage, die den Sortiervorgang für die Spalte „Abteilung“ und dann für die Spalte „Geburtstag“ in aufsteigender Reihenfolge mit der Methode sort() beginnt. Sobald die Sortierung abgeschlossen ist, haben wir die Methode limit() daneben platziert, um das eingeschränkte Dokument abzurufen. Der limit()-Methode wird ein numerischer Wert „4“ gegeben, was bedeutet, dass sie nur vier sortierte Dokumente für die Ausgabe anzeigt, wie im folgenden Bildschirm gezeigt:

Beispiel Nr. 6: MongoDB Sortieren von Abfrageergebnissen mit $sort Aggregation

In allen obigen Beispielen haben wir die Sortierung über die Methode sort() von MongoDB durchgeführt. Es gibt eine andere Art der Sortierung in MongoDB, die durch die $sort-Aggregation erreicht wird. Der $sort-Operator sortiert alle Eingabedokumente, die dann die sortierten Dokumente an die Pipeline zurückgeben. Der $sort-Operator wird auf die Sammlung „Employees“ unten angewendet.

db.Employees.aggregate([ { $sort : { Gehalt : 1, _id: -1 } } ])

Hier haben wir die Aggregatmethode aufgerufen, in der wir den „$sort“-Operator verwenden können. Dann haben wir den $sort-Operatorausdruck, der die Spalte „Gehalt“ in aufsteigender Reihenfolge und die Spalte „ID“ in absteigender Reihenfolge sortiert. Die auf das Feld angewendete $sort-Aggregation gibt die folgenden Ergebnisse aus:

Beispiel Nr. 6: MongoDB Sortieren von Abfrageergebnissen mit Skip-Methode

Die Methode sort() kann auch mit der Methode skip() gekoppelt werden. Der resultierende Datensatz kann eine bestimmte Anzahl von Dokumenten enthalten, die bei Verwendung der Methode skip() ignoriert werden. Wie die Methode limit() akzeptiert auch die Methode skip() den numerischen Wert, der die Anzahl der zu überspringenden Dokumente angibt. Wir haben die Methode sort() mit der Methode skip() in der Sortierabfrage kombiniert.

>db.Mitarbeiter.find({},{_id:0}).sort({'gehalt':1}).skip(4).pretty()

Hier haben wir die Methode skip() neben der Methode sort() verwendet. Wenn die Methode sort() die Dokumente sortiert, übergibt sie die Sortierausgabe an die Methode sort(). Danach entfernte die Methode skip() die ersten vier sortierten Dokumente aus der Sammlung.

Fazit

Der Artikel befasst sich mit den Sortierabfrageergebnissen in MongoDB. Wir haben zu diesem Zweck die Methode sort() verwendet, die die Datensätze in einer bestimmten Reihenfolge organisiert. Wir haben auch die Methode sort() zum mehrfachen Sortieren über mehrere Felder verwendet. Die sort()-Methode wird dann mit den limit()- und skip()-Methoden zu den sortierten Dokumenten gepaart, die diese Operationen verwenden. Außerdem haben wir die $sort-Aggregation zum Sortieren von Abfrageergebnissen in MongoDB bereitgestellt.