MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB $orderBy

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.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wdrażanie baz danych w chmurze za pomocą ClusterControl 1.6

  2. Jak sformatować datę w MongoDB

  3. MongoDB $stdDevPop

  4. Jak posortować tablicę w rekordzie kolekcji w MongoDB?

  5. Tworzenie danych testowych dla MongoDB