W MongoDB $orderBy
modyfikator zapytania sortuje wyniki zapytania w porządku rosnącym lub malejącym.
$orderBy
akceptuje dokument określający pole do sortowania i porządek sortowania. Porządek sortowania może być następujący:1
rosnąco lub -1
do zjazdu.
$orderBy
został przestarzały w mongo
powłoka od wersji 3.2. Użyj cursor.sort()
zamiast tego.
Przykładowe dane
Załóżmy, że mamy kolekcję o nazwie pets
z następującymi dokumentami:
{ "_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 }
Sortuj w porządku rosnącym
Aby posortować w porządku rosnącym, używamy 1
dla porządku sortowania.
Poniżej znajduje się przykład zapytania, które używa $orderBy
modyfikator zapytania, aby posortować tę kolekcję według weight
pole w kolejności rosnącej.
db.pets.find( { $query: {}, $orderBy: { weight: 1 } } )
Wynik:
{ "_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 }
Sortuj w porządku malejącym
Aby posortować w porządku malejącym, używamy -1
dla porządku sortowania.
db.pets.find( { $query: {}, $orderBy: { weight: -1 } } )
Wynik:
{ "_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 }
Alternatywna forma
$orderBy
modyfikatora zapytania można również użyć w następującej postaci:
db.pets.find()._addSpecial( "$orderby", { weight : 1 } )
Więcej informacji
Jak wspomniano, $orderBy
modyfikator zapytania został przestarzały w mongo
powłoka od wersji 3.2. Użyj cursor.sort()
zamiast tego.
Więcej informacji znajdziesz w dokumentacji MongoDB.