In Mongoose, come faccio ordina per data? (node.js)
Domanda
Diciamo che funzionare questa domanda in Mongoose:
Room.find({}, function(err,docs){
}).sort({date:-1});
Questo non funziona!
Soluzione
Ordinamento in Mongoose si è evoluto nel corso degli rilascia tale che alcune di queste risposte non sono più validi. A partire dal 4.1.x rilascio di Mangusta, un ordinamento decrescente sul campo date
può essere fatto 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
.
Altri suggerimenti
La risposta corretta è:
Blah.find({}).sort({date: -1}).execFind(function(err,docs){
});
a che fare con questo problema oggi usando Mongoose 3,5 (0,2) e nessuna delle risposte piuttosto mi ha aiutato a risolvere questo problema. Il seguente frammento di codice fa il trucco
Post.find().sort('-posted').find(function (err, posts) {
// user posts array
});
È possibile inviare eventuali parametri standard necessari per find()
(ad esempio in cui le clausole e campi di ritorno), ma non di callback. Senza un callback restituisce un oggetto Query, che si concatenano sort()
on. È necessario chiamare find()
di nuovo (con o senza più parametri - non dovrebbe avere bisogno di alcuna per ragioni di efficienza), che vi permetterà di ottenere il set di risultati nella richiamata ??p>.
faccio questo:
Data.find( { $query: { user: req.user }, $orderby: { dateAdded: -1 } } function ( results ) {
...
})
Questo mostrerà le cose più recenti.
Post.find().sort({date:-1}, function(err, posts){
});
dovrebbe funzionare così
Modifica
Si può anche provare a utilizzare questo se si ottiene la sort() only takes 1 Argument
errore:
Post.find({}, {
'_id': 0, // select keys to return here
}, {sort: '-date'}, function(err, posts) {
// use it here
});
Vedere se questo aiuta> Come ordinare in mangusta?
Anche leggere questo> http://www.mongodb.org / display / DOCS / Selezione + e + + Natural Order
soluzione breve:
const query = {}
const projection = {}
const options = { sort: { id: 1 }, limit: 2, skip: 10 }
Room.find(query, projection, options).exec(function(err, docs) { ... });