Saya tidak menemukan dokumen untuk pengubah sortir. Satu-satunya wawasan adalah dalam unit test: spec.lib.query.js # L12
writer.limit(5).sort(['test', 1]).group('name')
Tapi itu tidak berhasil untuk saya:
Post.find().sort(['updatedAt', 1]);
Saya tidak menemukan dokumen untuk pengubah sortir. Satu-satunya wawasan adalah dalam unit test: spec.lib.query.js # L12
writer.limit(5).sort(['test', 1]).group('name')
Tapi itu tidak berhasil untuk saya:
Post.find().sort(['updatedAt', 1]);
Jawaban:
Dalam bahasa Mongoose, pengurutan dapat dilakukan dengan salah satu cara berikut:
sumber
{sort: [['date', 1]]}
tidak akan bekerja, tetapi.sort([['date', -1]])
akan bekerja. Lihat jawaban ini: stackoverflow.com/a/15081087/404699Ini adalah bagaimana saya dapat menyortir luwak 2.3.0 :)
sumber
Array
untuk pemilihan bidang lagi - harusString
atauObject
null
bagian itu (setidaknya dalam 3,8)Mulai dari Mongoose 3.8.x:
Dimana:
criteria
bisaasc
,desc
,ascending
,descending
,1
, atau-1
sumber
MEMPERBARUI:
Mencoba:
sumber
.sort("updatedAt", -1)
..sort({updatedAt: -1})
atau.sort('-updatedAt')
.exec(function (posts) {…
sebagai gantinyaall
all() must be used after where() when called with these arguments
dalam Mongoose 4.6.5 ...Mongoose v5.4.3
urutkan berdasarkan urutan menaik
urutkan berdasarkan urutan menurun
Untuk Detail: https://mongoosejs.com/docs/api.html#query_Query-sort
sumber
Memperbarui
Ada tulisan yang lebih baik jika ini membingungkan orang; lihat dokumen temuan dan bagaimana kueri bekerja dalam manual luwak. Jika Anda ingin menggunakan api fasih Anda bisa mendapatkan objek permintaan dengan tidak memberikan panggilan balik ke
find()
metode, jika tidak, Anda dapat menentukan parameter seperti yang saya uraikan di bawah ini.Asli
Diberikan
model
objek, per dokumen pada Model , ini adalah cara kerjanya2.4.1
:Yang
search spec
mengharapkan suatu objek, tetapi Anda bisa lewatnull
atau objek kosong.Param kedua adalah daftar bidang sebagai array string, jadi Anda akan memberikan
['field','field2']
ataunull
.Param ketiga adalah opsi sebagai objek, yang mencakup kemampuan untuk mengurutkan set hasil. Anda akan menggunakan di
{ sort: { field: direction } }
manafield
string fieldnametest
(dalam kasus Anda) dandirection
merupakan nomor di mana1
naik dan-1
desceding.Param terakhir (
callback
) adalah fungsi callback yang menerima kumpulan dokumen yang dikembalikan oleh kueri.The
Model.find()
pelaksanaan (di versi ini) melakukan alokasi geser properti untuk menangani params opsional (yang adalah apa yang saya bingung!):HTH
sumber
Ini adalah bagaimana saya dapat menyortir bekerja di mongoose.js 2.0.4
sumber
Rantai dengan antarmuka pembuat kueri di Mongoose 4.
Lihat dokumen untuk lebih lanjut tentang kueri.
sumber
dengan versi luwak (1.6.0) saat ini jika Anda hanya ingin mengurutkan berdasarkan satu kolom, Anda harus meletakkan array dan meneruskan objek langsung ke fungsi sort ():
Butuh waktu beberapa lama untuk melakukan ini :(
sumber
Keluaran
sumber
Beginilah cara saya menyortir dan mengisi:
sumber
sumber
Yang lain bekerja untuk saya, tetapi ini berhasil:
sumber
sumber
Inilah yang saya lakukan, itu berfungsi dengan baik.
sumber
Mulai dari 4.x metode pengurutan telah diubah. Jika Anda menggunakan> 4.x. Coba gunakan salah satu dari yang berikut ini.
sumber
sumber