MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB $orderBy

В 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 за повече информация.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Свързване на приложението Heroku с облачна услуга Atlas MongoDB

  2. Как да наложа външни ключове в бази данни NoSql (MongoDB)?

  3. Как да инсталирате MongoDB 4.2 на системи RedHat/ CentOS 7

  4. Възможно ли е да се получи единичен резултат в съвкупност?

  5. Кой API на Python трябва да се използва с Mongo DB и Django