Auf einen Blick: Die Sort()-Methode von MongoDB organisiert die Daten in aufsteigender oder absteigender Reihenfolge basierend auf festgelegten Feldern, was die Klarheit und Zugänglichkeit der Abfragen verbessert. Sie unterstützt verschiedene Datentypen und kann mit Methoden wie limit() und skip() kombiniert werden.
- Die sort()-Methode benötigt Parameter, um Felder und Reihenfolge zu definieren.
- Sortieren kann auf einzelne oder mehrere Felder angewendet werden, um ein besseres Datensatzmanagement zu gewährleisten.
In diesem Artikel zeige ich Ihnen, wie Sie die MongoDB-Sortiermethode in verschiedenen Szenarien verwenden können, einschließlich wie Sie sie zusammen mit anderen Methoden zur Sortierung eines bestimmten Datensatzes einsetzen können.
Die Verwendung der Sort()-Methode erhöht die Lesbarkeit einer Abfrage, was zu einem besseren Verständnis eines bestimmten Datensatzes führt. Außerdem werden sortierte Daten von Entwicklern genutzt, um komplexere Algorithmen zu schreiben.
Was ist Datenbanksortierung?
Datenbanksortierung präsentiert die Daten in aufsteigender oder absteigender Reihenfolge in Bezug auf die Daten in einem bestimmten Feld. Sie können Sortieroperationen für verschiedene Datentypen durchführen, wie zum Beispiel:
- Streicher
- Ganze Zahlen
- Dezimal
- Und so weiter.
Der Hauptvorteil des Sortierens ist, dass es die Lesbarkeit und Einheitlichkeit der Daten erhöht, was den Nutzern hilft, die Bedeutung des Datensatzes besser zu verstehen.
MongoDB sort()
In MongoDB erfolgt das Sortieren mit der Sort()- Methode. Die Sort()-Methode besteht aus zwei grundlegenden Bausteinen. Diese Bausteine sind die zu sortierenden Felder und die Sortierreihenfolge.
Die Sortierreihenfolge in MongoDB ist entweder durch eine Eins (1) oder eine Minus (-1) definiert. Hier steht die positive Eins für die aufsteigende Ordnung, während die negative für die absteigende Ordnung steht.
Grundlegende Syntax von MongoDB sort()
db.collection_name.find().sort({field_name: sort order})
Laut der offiziellen Dokumentation verwendet MongoDB folgende Reihenfolge beim Vergleich verschiedener BSON-Typen von niedrig bis hoch. (BSON steht für Binary JSON Format.)
Dies ist das Serialisierungsformat, das in MongoDB verwendet wird, um Dokumente zu speichern und entfernte Prozeduraufrufe durchzuführen. Alle nicht vorhandenen Felder in einem Dokument werden als Nullobjekte behandelt.
- MinKey (interner Typ)
- Null
- Zahlen (Ints, Longs, Doubles, Dezimalzahlen)
- Symbol, Saite
- Ziel
- Array
- BinData
- ObjectId
- Boolesch
- Datum
- Zeitstempel
- Regulärer Ausdruck
- MaxKey (interner Typ)
Die folgenden Beispiele zeigen die Unterschiede zwischen einer unsortierten und einer sortierten MongoDB-Suchanfrage. Für dieses Beispiel verwenden wir die Sammlung "vehicleinformation".
"Fahrzeuginformations"-Sammeldaten
Unsortierte Sammlung
Wenn eine Suchanfrage mit der find()-Methode durchgeführt wird, besteht das Standardverhalten darin, die Ausgabe unsortiert zurückzugeben. Der {_id:0} -Operator wird verwendet, um die Dokument-ID für eine einfachere Ausgabe zu entfernen.
Ergebnisse in:
Sortierte Sammlung
db.vehicleinformation.find({},{_id:0})
Ergebnisse in:
Um ein sortiertes Ergebnis zu erhalten, fügen wir die sort()- Methode am Ende der Suchanfrage (find()- Methode an. Dadurch kann der Benutzer eine sortierte Ausgabe erzeugen.
In diesem Fall werden die Daten in aufsteigender Reihenfolge nach dem Feld "Jahr" sortiert.
Ergebnisse in:
db.vehicleinformation.find({},{_id:0}).sort({"year":1})
Ergebnisse in:
Wenn du der Sort()-Methode keine Argumente gibst, wird die Sammlung nicht sortiert, und die resultierende Ausgabe liegt in der Standardreihenfolge – also in der Reihenfolge, in der Mongo die Ergebnisse findet.
Ergebnis:
db.vehicleinformation.find({},{_id:0}).sort({})<.pre>
Ergebnis:
Verwendung der MongoDB sort()-Methode
Dieser Abschnitt erklärt, wie die Sort()-Methode verwendet werden kann, um verschiedene Sortieroperationen durchzuführen. Springen Sie zur Sortieroption, die Sie benötigen:
- In aufsteigender Reihenfolge
- In absteigender Reihenfolge
- Mit mehreren Körpern
- Mit der limit()-Methode
- Mit der skip()-Methode
- Metadaten
- Mit einem Index
Sortieren in aufsteigender Reihenfolge
In diesem Beispiel benutze ich das Textfeld "make", um die Ergebnisse in aufsteigender Reihenfolge zu erhalten. Der Operator eins ("{"make":1}) wird verwendet, um die aufsteigende Reihenfolge anzuzeigen, und die MongoDB-Projektion filtert alle anderen Felder außer dem "make"-Feld heraus.
Ergebnis:
db.vehicleinformation.find({},{make:1,_id:0}).sort({"make":1})
Ergebnis:
Sortieren in absteigender Reihenfolge
Dieses Beispiel ist dasselbe wie oben, mit einem Unterschied, nämlich dass der Operator minus eins ({"make":-1}) verwendet wird, um die absteigende Reihenfolge anzuzeigen.
Ergebnis:
db.vehicleinformation.find({},{make:1,_id:0}).sort({"make":-1})
Ergebnis:
Sortieren mit mehreren Feldern
Beim Sortieren mehrerer Felder sollten Sie Felder deklarieren, die innerhalb der sort()-Methode sortiert werden. Die Abfrage wird nach der Deklarationsposition der Felder sortiert, wobei die Sortierreihenfolge von links nach rechts ausgewertet wird. Um dies zu demonstrieren, verwenden wir die "vehiclesales"-Sammlung.
"Vehiclessales"-Sammlung
Ergebnis:
db.vehiclesales.find({},{_id:0})
Ergebnis:
Das folgende Beispiel zeigt, wie man mit den Feldern "make" und "price" sortiert. Die Daten werden zunächst nach "make" sortiert, da es das erste Argument ist, und anschließend wird der Datensatz weiter nach dem Feld "price" sortiert.
Ergebnis:
db.vehiclesales.find({},{_id:0}).sort({"make":1,"price":1})
Ergebnis:
Wie oben gezeigt, werden die Daten zunächst nach dem Markenfeld sortiert. Da es mehrere Dokumente mit demselben Hersteller-"Audi" gibt, werden die Daten erneut nach dem Preisfeld in aufsteigender Reihenfolge sortiert, was zu der obigen Ausgabe führt.
Sortieren mit der limit()-Methode
Die sort()-Methode kann zusammen mit der limit()-Methode verwendet werden, die die Anzahl der Ergebnisse in der Suchanfrage begrenzt. Sie sollten eine ganze Zahl an die limit()-Methode weitergeben, die dann die Anzahl der Dokumente angibt, auf die die Ergebnismenge begrenzt sein soll.
Die folgenden Beispiele verwenden die Sammlung "vehicleinformation", während das Ergebnis auf zwei Dokumente beschränkt und sowohl nach aufsteigender als auch absteigender Reihenfolge sortiert ist.
Ergebnis:
Ergebnisse in:
db.vehicleinformation.find({},{_id:0}).sort({"make":1,"year":1}).limit(2).pretty()
Ergebnis:
db.vehicleinformation.find({},{_id:0}).sort({"make":-1,"year":-1}).limit(2).pretty()
Ergebnisse in:
Sortieren mit der skip()-Methode
Sie können auch die skip()-Methode mit der sort()-Methode verwenden. Die skip()-Methode erlaubt es dem Benutzer, eine bestimmte Anzahl von Dokumenten aus dem resultierenden Datensatz zu überspringen.
Im folgenden Beispiel sieht man, dass die ersten vier Dokumente übersprungen werden, während sie nach Jahr in aufsteigender Reihenfolge sortiert werden.
Ergebnis:
db.vehicleinformation.find({},{_id:0}).sort({"year":1}).skip(4).pretty()
Ergebnis:
Metadaten-Sortierung
Die Sort()-Methode kann verwendet werden, um die Metadatenwerte für ein berechnetes Metadatenfeld zu sortieren.
Das folgende Beispiel nutzte die "food"-Sammlung, um zu demonstrieren, wie Dokumente mit der Metadaten "textScore" sortiert werden können. Der Feldname in der sort()-Methode kann beliebig sein, da das Abfragesystem den Feldnamen ignoriert.
"Essen"-Sammlung
Ergebnis:
Ergebnis:
db.food.find({},{_id:0})
Ergebnis:
db.food.find({$text:{$search: "pizza"}}, {score:{$meta: "textScore"}, _id: 0}).sort({sort_example:{$meta: "textScore"}})
Ergebnis:
In dieser Abfrage haben wir das Sortierfeld als "sort_example" angegeben. Dies wird jedoch ignoriert, da wir Metadaten sortieren. Außerdem wird der resultierende Datensatz in absteigender Reihenfolge sortiert, da wir mit "textScore"-Metadaten sortieren.
Sortieren mit einem Index
MongoDB kann Sortieroperationen auf einem Einzelfeldindex in aufsteigender oder absteigender Reihenfolge durchführen. Bei zusammengesetzten Indizes bestimmt die Sortierreihenfolge, ob der Index sortiert werden kann. Die Sortierschlüssel müssen in derselben Reihenfolge wie im Index definiert aufgeführt sein.
Zum Beispiel kann der zusammengesetzte Index {make: 1, year: 1} mit "sort({make: 1, year: 1})" sortiert werden, aber nicht auf "sort({year: 1, make: 1})". Das Sortieren mit einem Index hilft, den Ressourcenbedarf bei der Abfrage zu reduzieren.
Mit der Sammlung "vehicleslaes" definieren wir einen Index namens "make_index"
Ergebnis:
db.vehiclesales.find({},{_id:0}).sort({make_index: 1})
Ergebnis:
Hier wird der Index "make_index" verwendet, um die Dokumente zu sortieren. Um zu bestimmen, welcher Index verwendet wird, fügen wir die Methode explain() am Ende der Abfrage an, was zu folgender Ausgabe führt. Aus der Ausgabe können wir erkennen, dass das "make_index" verwendet wird, um die relevanten Dokumente abzurufen.
Ergebnis:
db.vehiclesales.find({},{_id:0}).sort({make: 1}).explain()
Ergebnis:
Schließlich wird die Abfrage ohne die explain()- Methode ausgeführt, um die Ausgabe zu erhalten.
Ergebnis:
db.vehiclesales.find({},{_id:0}).sort({make: 1})
Ergebnis:
Das war das Ende unseres MongoDB-Sortier-Tutorials.
Verwandte Literatur
- BMC Machine Learning & Big Data Blog
- MongoDB Guide, eine Reihe von Artikeln und Tutorials
- MongoDB: Die Mongo-Shell & Grundbefehle
- Datenspeicher erklärt: Data Lake vs. Warehouse vs. Datenbank
MongoDB-Leitfaden
- MongoDB-Überblick: Einstieg mit MongoDB
- Wie man MongoDB auf Ubuntu und Mac installiert
- Erstellung einer Datenbank in MongoDB
- MongoDB Shell Grundbefehle
- MongoDB Compass: Nutzung der Mongo GUI
- MongoDB rollenbasierte Zugriffskontrolle (RBAC) erklärt
- MongoDB-Projektion und Projektionsoperatoren erklärt
- MongoDB-Aggregatfunktionen erklärt
- MongoDB-Sortierung: sort()-Methode & Beispiele
- Verwendung von Push-and-Pull-Operatoren in MongoDB
- Wie man MongoDB $unwind
- 23 Gängige MongoDB-Abfrageoperatoren und deren Verwendung
- MongoDB GeoLocation-Abfragebeispiele
- Einführung in MongoDB-Transaktionen
- MongoDB-Indizes: Top-Indextypen und deren Verwaltung
- Die wichtigsten MongoDB-Befehle, die du kennen solltest
- MongoDB-Replikation: Eine vollständige Einführung
- Wie man einen MongoDB-Cluster einrichtet
- MongoDB Sharding: Konzepte, Beispiele & Tutorials
- MongoDB Atlas: Einrichtung und Nutzung von verwaltetem MongoDB
- Wie man MongoDB als Docker-Container ausführt
- MongoDB-Speichernutzung, Verwaltung und Anforderungen
- Wie man Mongodump für MongoDB-Backups verwendet
- Mongorestore-Beispiele zur Wiederherstellung von MongoDB-Backups
- Wie man PyMongo benutzt
- Wie man Mongoose für MongoDB und NodeJS verwendet
- MongoDB Spickzettel
- MongoDB vs Cassandra: NoSQL-Datenbanken im Vergleich
- PostgreSQL vs MongoDB: Vergleich von Datenbanken
- MySQL vs. MongoDB: Vergleich von Datenbanken
- MongoDB-Zertifizierungen: Eine Einführung
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.