Mit MongoDB Sort können Sie Dokumente nach be­stimm­ten Feldern sortieren. Die Ausgabe erfolgt dabei wahlweise auf- oder ab­stei­gend.

Was ist MongoDB Sort?

Mit dem Da­ten­bank­ma­nage­ment­sys­tem MongoDB speichern Sie Daten in Form von Do­ku­men­ten in Da­ten­ban­ken, die Sie mit dem MongoDB-Befehl Create Database erstellen können. Für eine bessere Übersicht und eine logische Ordnung lassen sich die Dateien zu­sätz­lich in Coll­ec­tions zu­sam­men­fü­gen und in­di­zie­ren. Das Ziel dieses Systems ist nicht nur Daten zu speichern, sondern diese auch zu jedem Zeitpunkt verfügbar zu machen. Um die Ausgabe zu op­ti­mie­ren, bietet das System die Methode MongoDB Sort an. Diese passt die Rei­hen­fol­ge an, in der Dokumente aus­ge­spielt werden. Auf­lis­tun­gen und Abfragen werden dadurch noch schneller und ef­fek­ti­ver nutzbar.

Tipp

Viele weitere Befehle finden Sie in unserer Übersicht der MongoDB Commands.

Syntax und Funk­ti­ons­wei­se 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 kom­bi­niert werden. Die grund­sätz­li­che Syntax sieht aus wie folgt:

db.collection_name.find().sort({field_name: sort_order})

Zu­sätz­lich zum ei­gent­li­chen Befehl MongoDB Sort, der den Namen der Coll­ec­tion 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 Sor­tie­rung fest, indem Sie den Parameter sort_order anpassen: Der Wert 1 steht für eine auf­stei­gen­de Sor­tie­rung und -1 bestimmt eine ab­stei­gen­de Rei­hen­fol­ge. De­fi­nie­ren Sie diesen Wert nicht, wird MongoDB Sort die Dokumente au­to­ma­tisch in auf­stei­gen­der Rei­hen­fol­ge ausgeben.

Beispiele für MongoDB Sort

Um MongoDB Sort und die ver­schie­de­nen Ein­satz­mög­lich­kei­ten besser zu ver­an­schau­li­chen, bieten sich ein paar einfache Beispiele an. Hierzu stellen wir uns eine Kun­den­lis­te vor, die zur besseren Übersicht drei Einträge hat und In­for­ma­tio­nen zum Kun­den­na­men und der Anzahl der Be­stel­lun­gen enthält. So sieht die Liste ohne Sor­tie­rung 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 }
>
Tipp: Managed MongoDB von IONOS

Mit Managed MongoDB von IONOS können Sie sich auf das We­sent­li­che kon­zen­trie­ren. Ob In­stal­la­ti­on, Betrieb oder War­tungs­ar­bei­ten, IONOS sorgt für einen zu­ver­läs­si­gen Betrieb Ihrer hoch­per­for­man­ten Da­ten­ban­ken.

Sortieren nach Name

Um die Kun­den­lis­te nun in eine al­pha­be­ti­sche Rei­hen­fol­ge 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 ab­stei­gen­der Rei­hen­fol­ge 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 Be­stel­lun­gen

Falls Sie Ihre Kundinnen und Kunden nach der Häu­fig­keit ihrer Be­stel­lun­gen sortieren möchten und dazu mit den meisten Einkäufen anfangen, sieht MongoDB Sort fol­gen­der­ma­ß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 }
>
Zum Hauptmenü