Відповіді:
Сортування в "Мангуста" розвинулось над випусками таким чином, що деякі з цих відповідей більше не є дійсними. З моменту випуску "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]). Я подумав, що може бути якесь таємне рукостискання, яке говорить, що "критерії" можуть бути до трьох аргументів, але в ньому перелічено тип як "Об'єкт".