V MongoDB, $orderBy
dotazový modifikátor seřadí výsledky dotazu ve vzestupném nebo sestupném pořadí.
$orderBy
přijímá dokument, který určuje pole k řazení a pořadí řazení. Pořadí řazení může být buď 1
pro vzestupné nebo -1
pro sestup.
$orderBy
byl v mongo
zastaralý shell od verze 3.2. Použijte cursor.sort()
místo toho.
Ukázková data
Předpokládejme, že máme sbírku nazvanou pets
s následujícími dokumenty:
{ "_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 }
Řadit vzestupně
K řazení ve vzestupném pořadí používáme 1
pro pořadí řazení.
Níže je uveden příklad dotazu, který používá $orderBy
modifikátor dotazu k seřazení této kolekce podle weight
pole ve vzestupném pořadí.
db.pets.find( { $query: {}, $orderBy: { weight: 1 } } )
Výsledek:
{ "_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 }
Řadit sestupně
Pro řazení v sestupném pořadí používáme -1
pro pořadí řazení.
db.pets.find( { $query: {}, $orderBy: { weight: -1 } } )
Výsledek:
{ "_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 }
Alternativní formulář
$orderBy
modifikátor dotazu lze také použít s následujícím formulářem:
db.pets.find()._addSpecial( "$orderby", { weight : 1 } )
Další informace
Jak již bylo zmíněno, $orderBy
Modifikátor dotazu byl v mongo
zastaralý shell od verze 3.2. Použijte cursor.sort()
místo toho.
Další informace naleznete v dokumentaci MongoDB.