MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB $orderBy

Dans MongoDB, le $orderBy Le modificateur de requête trie les résultats d'une requête par ordre croissant ou décroissant.

$orderBy accepte un document qui spécifie le champ à trier et l'ordre de tri. L'ordre de tri peut être soit 1 pour croissant ou -1 pour descendre.

$orderBy est obsolète dans le mongo shell depuis la v3.2. Utilisez le cursor.sort() méthode à la place.

Exemple de données

Supposons que nous ayons une collection appelée pets avec les documents suivants :

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

Trier par ordre croissant

Pour trier par ordre croissant, nous utilisons 1 pour l'ordre de tri.

Vous trouverez ci-dessous un exemple de requête qui utilise le $orderBy modificateur de requête pour trier cette collection par le weight champ par ordre croissant.

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

Résultat :

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

Trier par ordre décroissant

Pour trier par ordre décroissant, nous utilisons -1 pour l'ordre de tri.

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

Résultat :

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

Une forme alternative

Le $orderBy le modificateur de requête peut également être utilisé avec le formulaire suivant :

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

Plus d'informations

Comme mentionné, le $orderBy le modificateur de requête est obsolète dans le mongo shell depuis la v3.2. Utilisez le cursor.sort() méthode à la place.

Consultez la documentation MongoDB pour plus d'informations.