Jawaban:
Penyortiran dalam bahasa Mongoose telah berkembang seiring rilis sehingga beberapa dari jawaban ini tidak lagi valid. Pada rilis 4.1.x dari Mongoose, jenis menurun di date
lapangan dapat dilakukan dengan salah satu cara berikut:
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) { ... });
Untuk semacam ascending, menghilangkan -
awalan pada versi string atau penggunaan nilai-nilai 1
, asc
atau ascending
.
find
metode yang salah dalam dokumen. Lihat Model.find
.
Module#property
notasi dan mencari #find
. Tampaknya tidak ada cara mudah untuk menavigasi atau mencari dokumen. Pencarian untuk menemukan hasil 187 hasil.
_id
bidang. Misalnya, untuk mendapatkan catatan terbaru, Anda dapat melakukan:await db.collection.findOne().sort({ _id: -1 });
Jawaban yang benar adalah:
Blah.find({}).sort({date: -1}).execFind(function(err,docs){
});
Berhubungan dengan masalah ini hari ini menggunakan Mongoose 3.5 (.2) dan tidak ada jawaban yang cukup membantu saya memecahkan masalah ini. Cuplikan kode berikut berfungsi
Post.find().sort('-posted').find(function (err, posts) {
// user posts array
});
Anda dapat mengirim parameter standar apa pun yang Anda perlukan find()
(mis. Tempat klausa dan bidang kembali) tetapi tidak ada panggilan balik. Tanpa panggilan balik, ia mengembalikan objek kueri yang Anda rantai sort()
. Anda perlu menelepon find()
lagi (dengan atau tanpa lebih banyak parameter - seharusnya tidak memerlukan alasan efisiensi) yang memungkinkan Anda untuk mendapatkan hasil yang ditetapkan dalam panggilan balik Anda.
Post.find().sort({date:-1}, function(err, posts){
});
Harus bekerja juga
EDIT:
Anda juga dapat mencoba menggunakan ini jika Anda mendapatkan kesalahan 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){});
Solusi singkat:
const query = {}
const projection = {}
const options = { sort: { id: 1 }, limit: 2, skip: 10 }
Room.find(query, projection, options).exec(function(err, docs) { ... });
Lihat apakah ini membantu> Bagaimana cara mengurutkan luwak?
Baca juga ini> http://www.mongodb.org/display/DOCS/Sorting+and+Natural+Order
Anda juga dapat mengurutkan berdasarkan _id
bidang. Misalnya, untuk mendapatkan catatan terbaru, Anda dapat melakukannya,
const mostRecentRecord = await db.collection.findOne().sort({ _id: -1 });
Ini jauh lebih cepat juga, karena saya lebih dari berani bertaruh bahwa date
bidang Anda tidak diindeks.
Query#find([criteria], [callback])
. Saya pikir mungkin ada beberapa jabat tangan rahasia yang mengatakan "kriteria" bisa sampai tiga argumen, tetapi daftar jenis sebagai "Objek".