скажем, я запускаю этот запрос в Mongoose:
Room.find({}, function(err,docs){
}).sort({date:-1});
Это не работает!
скажем, я запускаю этот запрос в Mongoose:
Room.find({}, function(err,docs){
}).sort({date:-1});
Это не работает!
Сортировка в Mongoose развилась по сравнению с релизами, поэтому некоторые из этих ответов более недействительны. Начиная с выпуска 4.1.x Mongoose, нисходящий сортировка в поле date
может быть выполнена одним из следующих способов:
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) { ... });
Для восходящей сортировки опустите префикс -
в строковой версии или используйте значения 1
, asc
или ascending
.
Правильный ответ:
Blah.find({}).sort({date: -1}).execFind(function(err,docs){
});
Post.find().sort('-posted').find(function (err, posts) {
// user posts array
});
Вы можете отправить любые стандартные параметры, необходимые для find()
(например, где клаузулы и поля возврата), но нет. Без обратного вызова он возвращает объект Query, к которому вы привязываете sort()
. Вам нужно снова вызвать find()
(с или без дополнительных параметров - не нужно по соображениям эффективности), что позволит вам получить результат в обратном вызове.
Я делаю это:
Data.find( { $query: { user: req.user }, $orderby: { dateAdded: -1 } } function ( results ) {
...
})
Это покажет самые последние вещи.
Post.find().sort({date:-1}, function(err, posts){
});
Должен работать и
Посмотрите, помогает ли это > Как сортировать в мангусте?
Также прочтите это > http://www.mongodb.org/display/DOCS/Sorting+and+Natural+Order
Краткое решение:
const query = {}
const projection = {}
const options = { sort: { id: 1 }, limit: 2, skip: 10 }
Room.find(query, projection, options).exec(function(err, docs) { ... });