Não encontro nenhum documento para o modificador de classificação. O único insight está nos testes de unidade: spec.lib.query.js # L12
writer.limit(5).sort(['test', 1]).group('name')
Mas isso não funciona para mim:
Post.find().sort(['updatedAt', 1]);
Respostas:
No Mongoose, uma classificação pode ser feita das seguintes maneiras:
fonte
{sort: [['date', 1]]}
não vai funcionar, mas.sort([['date', -1]])
vai funcionar. Veja esta resposta: stackoverflow.com/a/15081087/404699Foi assim que consegui trabalhar no mangusto 2.3.0 :)
fonte
Array
para seleção de campo mais - que tem que serString
ouObject
null
A partir do Mongoose 3.8.x:
Onde:
criteria
pode serasc
,desc
,ascending
,descending
,1
, ou-1
fonte
ATUALIZAR:
Experimentar:
fonte
.sort("updatedAt", -1)
..sort({updatedAt: -1})
ou.sort('-updatedAt')
.exec(function (posts) {…
em vez deall
all() must be used after where() when called with these arguments
em Mongoose 4.6.5 ...Mongoose v5.4.3
classificar por ordem crescente
ordenar por ordem decrescente
Para detalhes: https://mongoosejs.com/docs/api.html#query_Query-sort
fonte
Atualizar
Há uma redação melhor se isso for confundir as pessoas; consulte a localização de documentos e como as consultas funcionam no manual do mangusto. Se você deseja usar a API fluente, pode obter um objeto de consulta não fornecendo um retorno de chamada para o
find()
método; caso contrário, você pode especificar os parâmetros, conforme descrito abaixo.Original
Dado um
model
objeto, de acordo com os documentos do Model , é assim que ele pode funcionar2.4.1
:O
search spec
espera um objeto, mas você pode passarnull
ou um objeto vazio.O segundo parâmetro é a lista de campos como uma matriz de seqüências de caracteres, então você forneceria
['field','field2']
ounull
.O terceiro parâmetro são as opções como objeto, que incluem a capacidade de classificar o conjunto de resultados. Você usaria
{ sort: { field: direction } }
wherefield
é a string fieldnametest
(no seu caso) edirection
é um número em que1
está subindo e-1
descendo.O parâmetro final (
callback
) é a função de retorno de chamada que recebe a coleção de documentos retornados pela consulta.A
Model.find()
implementação (nesta versão) faz uma alocação deslizante de propriedades para lidar com parâmetros opcionais (que é o que me confundiu!):HTH
fonte
Foi assim que consegui trabalhar no mongoose.js 2.0.4
fonte
Encadeamento com a interface do construtor de consultas no Mongoose 4.
Consulte os documentos para obter mais informações sobre consultas.
fonte
com a versão atual do mongoose (1.6.0), se você deseja classificar apenas por uma coluna, é necessário soltar a matriz e passar o objeto diretamente para a função sort ():
Levei algum tempo para acertar :(
fonte
Resultado
fonte
Foi assim que consegui classificar e preencher:
fonte
fonte
Outros trabalharam para mim, mas isso funcionou:
fonte
fonte
Isto é o que eu fiz, funciona bem.
fonte
A partir do 4.x, os métodos de classificação foram alterados. Se você estiver usando> 4.x. Tente usar qualquer um dos seguintes.
fonte
fonte