В MongoDB, $orderBy модификаторът на заявка сортира резултатите от заявка във възходящ или низходящ ред.
$orderBy приема документ, който определя полето за сортиране и реда на сортиране. Редът на сортиране може да бъде 1 за възходящо или -1 за спускане.
$orderBy е отхвърлено в mongo обвивка от v3.2. Използвайте cursor.sort() вместо това.
Примерни данни
Да предположим, че имаме колекция, наречена pets със следните документи:
{ "_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 } Сортиране във възходящ ред
За да сортираме във възходящ ред, използваме 1 за реда на сортиране.
По-долу е даден пример за заявка, която използва $orderBy модификатор на заявка за сортиране на тази колекция по weight поле във възходящ ред.
db.pets.find( { $query: {}, $orderBy: { weight: 1 } } ) Резултат:
{ "_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 } Сортиране в низходящ ред
За да сортираме в низходящ ред, използваме -1 за реда на сортиране.
db.pets.find( { $query: {}, $orderBy: { weight: -1 } } ) Резултат:
{ "_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 } Алтернативен формуляр
$orderBy модификаторът на заявка може да се използва и със следния формуляр:
db.pets.find()._addSpecial( "$orderby", { weight : 1 } ) Повече информация
Както споменахме, $orderBy модификаторът на заявка е отхвърлен в mongo обвивка от v3.2. Използвайте cursor.sort() вместо това.
Вижте документацията на MongoDB за повече информация.