Risposte:
L'ordinamento in Mongoose si è evoluto rispetto alle versioni in modo tale che alcune di queste risposte non siano più valide. A partire dalla versione 4.1.x di Mongoose, un ordinamento decrescente sul date
campo può essere eseguito in uno dei seguenti modi:
Room.find({}).sort('-date').exec(function(err, docs) { ... });
Room.find({}).sort({date: -1}).exec(function(err, docs) { ... });
Room.find({}).sort({date: 'desc'}).exec(function(err, docs) { ... });
Room.find({}).sort({date: 'descending'}).exec(function(err, docs) { ... });
Room.find({}).sort([['date', -1]]).exec(function(err, docs) { ... });
Room.find({}, null, {sort: '-date'}, function(err, docs) { ... });
Room.find({}, null, {sort: {date: -1}}, function(err, docs) { ... });
Per un ordinamento crescente, omettere il -
prefisso sui valori di versione stringa o uso di 1
, asc
o ascending
.
find
metodo sbagliato nei documenti. Vedere Model.find
.
Module#property
notazione e ho cercato #find
. Sembra che non ci sia un modo semplice per navigare o cercare i documenti. La ricerca di find produce 187 risultati.
_id
campo. Ad esempio, per ottenere il record più recente, puoi fare:await db.collection.findOne().sort({ _id: -1 });
La risposta corretta è:
Blah.find({}).sort({date: -1}).execFind(function(err,docs){
});
Oggi ho affrontato questo problema usando Mongoose 3.5 (.2) e nessuna delle risposte mi ha aiutato a risolverlo. Il seguente frammento di codice fa il trucco
Post.find().sort('-posted').find(function (err, posts) {
// user posts array
});
È possibile inviare qualsiasi parametro standard necessario find()
(ad es. Dove clausole e campi di restituzione) ma nessun callback. Senza una richiamata restituisce un oggetto Query su cui si esegue la catena sort()
. È necessario chiamare find()
nuovamente (con o senza più parametri - non dovrebbe averne bisogno per motivi di efficienza) che consentirà di ottenere il set di risultati nel callback.
Post.find().sort({date:-1}, function(err, posts){
});
Dovrebbe funzionare anche
MODIFICARE:
Puoi anche provare a usarlo se ricevi l'errore sort() only takes 1 Argument
:
Post.find({}, {
'_id': 0, // select keys to return here
}, {sort: '-date'}, function(err, posts) {
// use it here
});
Error: sort() only takes 1 Argument
Post.find({}, {'_id': 0}).sort("-date").function(err, posts){});
Soluzione breve:
const query = {}
const projection = {}
const options = { sort: { id: 1 }, limit: 2, skip: 10 }
Room.find(query, projection, options).exec(function(err, docs) { ... });
Vedi se questo aiuta> Come ordinare in mangusta?
Leggi anche questo> http://www.mongodb.org/display/DOCS/Sorting+and+Natural+Order
Query#find([criteria], [callback])
. Ho pensato che forse ci fosse una stretta di mano segreta che dice che "criteri" può contenere fino a tre argomenti, ma elenca il tipo come "Oggetto".