In MongoDB, il $orderBy
il modificatore di query ordina i risultati di una query in ordine crescente o decrescente.
$orderBy
accetta un documento che specifica il campo da ordinare e l'ordinamento. L'ordinamento può essere 1
per crescente o -1
per la discesa.
$orderBy
è stato ritirato nel mongo
shell dalla v3.2. Usa cursor.sort()
metodo invece.
Dati di esempio
Supponiamo di avere una collezione chiamata pets
con i seguenti documenti:
{ "_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 }
Ordina in ordine crescente
Per ordinare in ordine crescente, utilizziamo 1
per l'ordinamento.
Di seguito è riportato un esempio di query che utilizza $orderBy
modificatore di query per ordinare quella raccolta in base al weight
campo in ordine crescente.
db.pets.find( { $query: {}, $orderBy: { weight: 1 } } )
Risultato:
{ "_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 }
Ordina in ordine decrescente
Per ordinare in ordine decrescente, utilizziamo -1
per l'ordinamento.
db.pets.find( { $query: {}, $orderBy: { weight: -1 } } )
Risultato:
{ "_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 }
Un modulo alternativo
Il $orderBy
il modificatore di query può essere utilizzato anche con il seguente modulo:
db.pets.find()._addSpecial( "$orderby", { weight : 1 } )
Maggiori informazioni
Come accennato, il $orderBy
il modificatore di query è stato deprecato in mongo
shell dalla v3.2. Usa cursor.sort()
metodo invece.
Consulta la documentazione di MongoDB per ulteriori informazioni.