Mongodb: so sortieren sie nach mehreren feldern
Sie können die folgende Syntax verwenden, um Dokumente in MongoDB nach mehreren Feldern zu sortieren:
db.myCollection.find().sort( { " field1 ": 1, " field2 ": -1 } )
Dieser spezielle Code sortiert die Dokumente in der Sammlung namens „myCollection“ zuerst nach Feld 1 aufsteigend und dann nach Feld 2 absteigend.
Die folgenden Beispiele zeigen, wie diese Syntax mit einem Inkassoteam mit den folgenden Dokumenten verwendet wird :
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Spurs ", points: 30, rebounds: 12}) db.teams.insertOne({team: " Rockets ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Warriors ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Cavs ", points: 25, rebounds: 9})
Beispiel 1: Sortieren nach mehreren Feldern in MongoDB (aufsteigend)
Wir können den folgenden Code verwenden, um die Dokumente in der Teams- Sammlung zuerst durch Erhöhen der „Punkte“ und dann durch Erhöhen der „Bounces“ zu sortieren:
db.teams.find().sort( { " points ": 1, " rebounds ": 1 } )
Diese Abfrage gibt die folgenden Ergebnisse zurück:
{ _id: ObjectId("61f952c167f1c64a1afb203b"), team: 'Rockets', points: 20, rebounds: 7 } { _id: ObjectId("61f952c167f1c64a1afb203c"), team: 'Warriors', points: 25, rebounds: 5 } { _id: ObjectId("61f952c167f1c64a1afb203d"), team: 'Cavs', points: 25, rebounds: 9 } { _id: ObjectId("61f952c167f1c64a1afb2039"), team: 'Mavs', points: 30, rebounds: 8 } { _id: ObjectId("61f952c167f1c64a1afb203a"), team: 'Spurs', points: 30, rebounds: 12 }
Beachten Sie, dass die Dokumente nach zunehmendem „Punkte“-Feld (vom kleinsten zum größten) und dann nach zunehmendem „Rebounds“-Feld (vom kleinsten zum größten) sortiert sind.
Beispiel 2: Sortieren nach mehreren Feldern in MongoDB (absteigend)
Wir können den folgenden Code verwenden, um die Dokumente in der Teams- Sammlung zuerst durch Verringern der „Punkte“ und dann durch Verringern der „Bounces“ zu sortieren:
db.teams.find().sort( { " points ": -1, " rebounds ": -1 } )
Diese Abfrage gibt die folgenden Ergebnisse zurück:
{ _id: ObjectId("61f952c167f1c64a1afb203a"), team: 'Spurs', points: 30, rebounds: 12 } { _id: ObjectId("61f952c167f1c64a1afb2039"), team: 'Mavs', points: 30, rebounds: 8 } { _id: ObjectId("61f952c167f1c64a1afb203d"), team: 'Cavs', points: 25, rebounds: 9 } { _id: ObjectId("61f952c167f1c64a1afb203c"), team: 'Warriors', points: 25, rebounds: 5 } { _id: ObjectId("61f952c167f1c64a1afb203b"), team: 'Rockets', points: 20, rebounds: 7 }
Beachten Sie, dass die Dokumente nach abnehmendem „Punkte“-Feld (vom größten zum kleinsten) und dann nach abnehmendem „Rebounds“-Feld (vom größten zum kleinsten) sortiert sind.
Hinweis : Die vollständige Dokumentation zur Sortierfunktion finden Sie hier .
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere gängige Vorgänge in MongoDB ausführen:
MongoDB: So sortieren Sie nach Datum
MongoDB: So gruppieren und zählen
MongoDB: So gruppieren Sie nach mehreren Feldern