sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB $orderBy

I MongoDB er $orderBy query modifier sorterer resultaterne af en forespørgsel i stigende eller faldende rækkefølge.

$orderBy accepterer et dokument, der angiver det felt, der skal sorteres, og sorteringsrækkefølgen. Sorteringsrækkefølgen kan enten være 1 for stigende eller -1 til nedstigning.

$orderBy er blevet forældet i mongo skal siden v3.2. Brug cursor.sort() metode i stedet.

Eksempel på data

Antag, at vi har en samling kaldet pets med følgende dokumenter:

{ "_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 }

Sortér i stigende rækkefølge

For at sortere i stigende rækkefølge bruger vi 1 for sorteringsrækkefølgen.

Nedenfor er et eksempel på en forespørgsel, der bruger $orderBy forespørgselsmodifikator for at sortere denne samling efter weight felt i stigende rækkefølge.

db.pets.find( { $query: {}, $orderBy: { weight: 1 } } )

Resultat:

{ "_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 }

Sortér i faldende rækkefølge

For at sortere i faldende rækkefølge bruger vi -1 for sorteringsrækkefølgen.

db.pets.find( { $query: {}, $orderBy: { weight: -1 } } )

Resultat:

{ "_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 }

En alternativ formular

$orderBy forespørgselsmodifikator kan også bruges med følgende form:

db.pets.find()._addSpecial( "$orderby", { weight : 1 } )

Flere oplysninger

Som nævnt er $orderBy query modifier er blevet forældet i mongo skal siden v3.2. Brug cursor.sort() metode i stedet.

Se MongoDB-dokumentationen for mere information.


  1. Installation af Memcached på Ubuntu 16.04/18.04 med Nginx og PHP-7.3

  2. Hvordan udfører man Persistence Store i Redis?

  3. MongoDB distinct()

  4. Redis forslag til valg af datatype