Відповіді:
Сортування в "Мангуста" розвинулось над випусками таким чином, що деякі з цих відповідей більше не є дійсними. З моменту випуску "Mongoose" 4.1.x , сортування на 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
.
find
метод у документах. Див Model.find
.
Module#property
позначення і шукали #find
. Здається, немає простого способу навігації або пошуку документів. Пошук пошуку дає 187 результатів.
_id
полями. Наприклад, щоб отримати останній запис, ви можете зробити:await db.collection.findOne().sort({ _id: -1 });
Правильна відповідь:
Blah.find({}).sort({date: -1}).execFind(function(err,docs){
});
Сьогодні я займався цим питанням, використовуючи Mongoose 3.5 (.2), і жодна з відповідей не допомогла мені вирішити це питання. Наступний фрагмент коду виконує цю справу
Post.find().sort('-posted').find(function (err, posts) {
// user posts array
});
Ви можете надіслати будь-які стандартні параметри, які вам потрібні find()
(наприклад, де пункти та поля повернення), але немає зворотного дзвінка. Без зворотного дзвінка він повертає об’єкт Запиту, на який ви ланцюжок sort()
. Вам потрібно зателефонувати find()
ще раз (з додатковими параметрами або без них - не повинно бути жодним з міркувань ефективності), що дозволить отримати результат, встановлений у зворотному дзвінку.
Post.find().sort({date:-1}, function(err, posts){
});
Має працювати також
Редагувати:
Ви також можете спробувати скористатися цим, якщо ви отримаєте помилку 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){});
Коротке рішення:
const query = {}
const projection = {}
const options = { sort: { id: 1 }, limit: 2, skip: 10 }
Room.find(query, projection, options).exec(function(err, docs) { ... });
Подивіться, чи це допомагає> Як сортувати мангуста?
Також прочитайте це> http://www.mongodb.org/display/DOCS/Sorting+and+Natural+Order
Query#find([criteria], [callback])
. Я подумав, що може бути якесь таємне рукостискання, яке говорить, що "критерії" можуть бути до трьох аргументів, але в ньому перелічено тип як "Об'єкт".