Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

$orderby

$orderby

Observação

Descontinuado desde a v3.2

A partir de3.2 v, o operador $orderby mongosh é preterido no . Em ,mongosh use cursor.sort() .

O operador $orderby classifica os resultados de uma query em ordem crescente ou decrescente.

mongosh fornece o método cursor.sort() :

db.collection.find().sort( { age: -1 } )

Você também pode especificar a opção em um dos seguintes formulários:

db.collection.find()._addSpecial( "$orderby", { age : -1 } )
db.collection.find( { $query: {}, $orderby: { age : -1 } } )

Esses exemplos retornam todos os documentos na coleção chamada collection classificados pelo campo age em ordem decrescente. Especifique um valor para $orderby de um negativo (por exemplo -1, como acima) para classificar em ordem decrescente ou um valor positivo (por exemplo 1) para classificar em ordem crescente.

Como os índices contêm registros ordenados, o MongoDB pode obter os resultados de uma classificação a partir de um índice que inclua os campos de classificação. O MongoDB pode usar vários índices para dar suporte a uma operação de classificação se a classificação usar os mesmos índices que o predicado da query.

Se o MongoDB não puder usar um índice ou índices para obter a ordem de classificação, o MongoDB deverá executar uma operação de classificação de bloqueio nos dados. Uma classificação de bloqueio indica que o MongoDB deve consumir e processar todos os documentos de entrada para a classificação antes de retornar os resultados. As classificações de bloqueio não bloqueiam operações simultâneas na coleção ou no banco de dados.

As operações de classificação que usam um índice geralmente têm melhor desempenho do que os ordenadores bloqueantes. Para obter mais informações sobre como criar índices para dar suporte a operações de classificação, consulte Usar índices para classificar resultados de queries.

Se o MongoDB exigir o uso de mais de 100 megabytes de memória do sistema para a operação de classificação de bloqueio, o MongoDB retornará um erro a menos que a query especifique cursor.allowDiskUse() (Novo no MongoDB 4.4). allowDiskUse() permite que o MongoDB use arquivos temporários no disco para armazenar dados que excedam o limite de memória do sistema de 100 megabytes ao processar uma ordenador bloqueante.

Para evitar esse erro, crie um índice para dar suporte à operação de classificação ou use $orderby em conjunto com cursor.maxTimeMS() e/ou cursor.limit(). O cursor.limit() aumenta a velocidade e reduz a quantidade de memória necessária para retornar essa query por meio de um algoritmo otimizado. O limite especificado deve resultar em vários documentos dentro do limite 100 megabyte.

Voltar

$min

Nesta página