MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB $orderBy

In MongoDB der $orderBy Abfragemodifikator sortiert die Ergebnisse einer Abfrage in aufsteigender oder absteigender Reihenfolge.

$orderBy akzeptiert ein Dokument, das das zu sortierende Feld und die Sortierreihenfolge angibt. Die Sortierreihenfolge kann entweder 1 sein für aufsteigend oder -1 zum absteigen.

$orderBy wurde im mongo als veraltet markiert Shell seit v3.2. Verwenden Sie cursor.sort() Methode statt.

Beispieldaten

Angenommen, wir haben eine Sammlung namens pets mit folgenden Dokumenten:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
{ "_id" : 5, "name" : "Bruce", "type" : "Kangaroo", "weight" : 100 }
{ "_id" : 6, "name" : "Hop", "type" : "Kangaroo", "weight" : 130 }
{ "_id" : 7, "name" : "Punch", "type" : "Kangaroo", "weight" : 200 }
{ "_id" : 8, "name" : "Snap", "type" : "Cat", "weight" : 12 }
{ "_id" : 9, "name" : "Ruff", "type" : "Dog", "weight" : 30 }

In aufsteigender Reihenfolge sortieren

Um in aufsteigender Reihenfolge zu sortieren, verwenden wir 1 für die Sortierreihenfolge.

Unten sehen Sie ein Beispiel für eine Abfrage, die $orderBy verwendet Abfragemodifikator, um diese Sammlung nach weight zu sortieren Feld in aufsteigender Reihenfolge.

db.pets.find( { $query: {}, $orderBy: { weight: 1 } } )

Ergebnis:

{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 8, "name" : "Snap", "type" : "Cat", "weight" : 12 }
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 9, "name" : "Ruff", "type" : "Dog", "weight" : 30 }
{ "_id" : 5, "name" : "Bruce", "type" : "Kangaroo", "weight" : 100 }
{ "_id" : 6, "name" : "Hop", "type" : "Kangaroo", "weight" : 130 }
{ "_id" : 7, "name" : "Punch", "type" : "Kangaroo", "weight" : 200 }

In absteigender Reihenfolge sortieren

Um in absteigender Reihenfolge zu sortieren, verwenden wir -1 für die Sortierreihenfolge.

db.pets.find( { $query: {}, $orderBy: { weight: -1 } } )

Ergebnis:

{ "_id" : 7, "name" : "Punch", "type" : "Kangaroo", "weight" : 200 }
{ "_id" : 6, "name" : "Hop", "type" : "Kangaroo", "weight" : 130 }
{ "_id" : 5, "name" : "Bruce", "type" : "Kangaroo", "weight" : 100 }
{ "_id" : 9, "name" : "Ruff", "type" : "Dog", "weight" : 30 }
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 8, "name" : "Snap", "type" : "Cat", "weight" : 12 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }

Ein alternatives Formular

Der $orderBy Der Abfragemodifikator kann auch mit der folgenden Form verwendet werden:

db.pets.find()._addSpecial( "$orderby", { weight : 1 } )

Weitere Informationen

Wie bereits erwähnt, der $orderBy Der Abfragemodifikator wurde im mongo als veraltet markiert Shell seit v3.2. Verwenden Sie cursor.sort() Methode statt.

Weitere Informationen finden Sie in der MongoDB-Dokumentation.