Mit MongoDB Sort können Sie Dokumente nach bestimmten Feldern sortieren. Die Ausgabe erfolgt dabei wahlweise auf- oder absteigend.
Was ist MongoDB Sort?
Mit dem Datenbankmanagementsystem MongoDB speichern Sie Daten in Form von Dokumenten in Datenbanken, die Sie mit dem MongoDB-Befehl Create Database erstellen können. Für eine bessere Übersicht und eine logische Ordnung lassen sich die Dateien zusätzlich in Collections zusammenfügen und indizieren. Das Ziel dieses Systems ist nicht nur Daten zu speichern, sondern diese auch zu jedem Zeitpunkt verfügbar zu machen. Um die Ausgabe zu optimieren, bietet das System die Methode MongoDB Sort an. Diese passt die Reihenfolge an, in der Dokumente ausgespielt werden. Auflistungen und Abfragen werden dadurch noch schneller und effektiver nutzbar.
Tipp
Viele weitere Befehle finden Sie in unserer Ãœbersicht der MongoDB Commands.
Syntax und Funktionsweise von MongoDB Sort
Neben MongoDB Find ist MongoDB Sort eine Methode, die Sie bei der Arbeit mit der Datenbank häufig verwenden werden. Beide können auch kombiniert werden. Die grundsätzliche Syntax sieht aus wie folgt:
db.collection_name.find().sort({field_name: sort_order})
Zusätzlich zum eigentlichen Befehl MongoDB Sort, der den Namen der Collection enthalten muss, gibt es noch einen Parameter. Dieser ist ein Dokument und bestimmt das Feld, nach dem das System die Dokumente sortieren soll. Außerdem legen Sie die Richtung der Sortierung fest, indem Sie den Parameter sort_order anpassen: Der Wert 1 steht für eine aufsteigende Sortierung und -1 bestimmt eine absteigende Reihenfolge. Definieren Sie diesen Wert nicht, wird MongoDB Sort die Dokumente automatisch in aufsteigender Reihenfolge ausgeben.
Beispiele für MongoDB Sort
Um MongoDB Sort und die verschiedenen Einsatzmöglichkeiten besser zu veranschaulichen, bieten sich ein paar einfache Beispiele an. Hierzu stellen wir uns eine Kundenliste vor, die zur besseren Übersicht drei Einträge hat und Informationen zum Kundennamen und der Anzahl der Bestellungen enthält. So sieht die Liste ohne Sortierung aus:
>db.kundenliste.find()
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "name" : "Mustermann", "purchases" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "name" : "Schulz", "purchases" : 1 },
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "name" : "Mueller", "purchases" : 4 }
>
Sortieren nach Name
Um die Kundenliste nun in eine alphabetische Reihenfolge zu bringen, nutzen Sie MongoDB Sort. So würde das für unser Beispiel aussehen:
>db.kundenliste.find().sort({name : 1})
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "name" : "Mueller", "purchases" : 4 },
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "name" : "Mustermann", "purchases" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "name" : "Schulz", "purchases" : 1 }
>
Möchten Sie die Namen in absteigender Reihenfolge anzeigen, nutzen Sie MongoDB Sort wie folgt:
>db.kundenliste.find().sort({name : -1})
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "name" : "Schulz", "purchases" : 1 },
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "name" : "Mustermann", "purchases" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "name" : "Mueller", "purchases" : 4 }
>
Sortieren nach Bestellungen
Falls Sie Ihre Kundinnen und Kunden nach der Häufigkeit ihrer Bestellungen sortieren möchten und dazu mit den meisten Einkäufen anfangen, sieht MongoDB Sort folgendermaßen aus:
>db.kundenliste.find().sort({purchases : -1})
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "name" : "Mueller", "purchases" : 4 },
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "name" : "Mustermann", "purchases" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "name" : "Schulz", "purchases" : 1 }
>