Yanıtlar:
Mongoose'daki sıralama , bu cevapların bazılarının artık geçerli olmayacağı şekilde sürümler üzerinde gelişmiştir. İtibariyle 4.1.x Gelincik serbest bırakılması üzerine sıralama azalan bir date
alanda aşağıdaki yollardan birini yapılabilir:
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) { ... });
Artan bir sıralamada için, ihmal -
dize sürümü veya kullanım değerlerine öneki 1
, asc
ya ascending
.
find
Dokümanlardaki yanlış yönteme bakıyorsunuz . Bkz Model.find
.
Module#property
Gösterimi kullandıklarını gördüm ve aradılar #find
. Belgelerde gezinmenin veya arama yapmanın kolay bir yolu yok gibi görünüyor. Bulmak için arama 187 sonuç verir.
_id
alana göre de sıralayabilirsiniz . Örneğin, en son kaydı almak için şunları yapabilirsiniz:await db.collection.findOne().sort({ _id: -1 });
Doğru cevap:
Blah.find({}).sort({date: -1}).execFind(function(err,docs){
});
Bugün Mongoose 3.5 (.2) kullanarak bu konuyla uğraşıyorum ve cevapların hiçbiri bu sorunu çözmeme yardımcı olmadı. Aşağıdaki kod snippet'i hile yapar
Post.find().sort('-posted').find(function (err, posts) {
// user posts array
});
İhtiyacınız olan herhangi bir standart parametreyi find()
(örneğin, yan tümceler ve dönüş alanları) gönderebilirsiniz, ancak geri arama yapılmaz . Geri arama olmadığında, zincirlediğiniz bir Sorgu nesnesi döndürür sort()
. find()
Tekrar aramaya (sonuç parametresi olsun veya olmasın - verimlilik nedeniyle herhangi bir şeye ihtiyaç duymamalısınız) tekrar aramanız gerekir.
Post.find().sort({date:-1}, function(err, posts){
});
De çalışmalı
DÜZENLE:
Hatayı alırsanız bunu kullanmayı da deneyebilirsiniz 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){});
Kısa çözüm:
const query = {}
const projection = {}
const options = { sort: { id: 1 }, limit: 2, skip: 10 }
Room.find(query, projection, options).exec(function(err, docs) { ... });
Bunun yardımcı olup olmadığına bakın> işe yarayıp yaramadığını Firavun faresi nasıl sıralanır?
Ayrıca bunu okuyun> http://www.mongodb.org/display/DOCS/Sorting+and+Doğal+Sipariş
Bu benim için çalışıyor.
`Post.find().sort({postedon: -1}).find(function (err, sortedposts){
if (err)
return res.status(500).send({ message: "No Posts." });
res.status(200).send({sortedposts : sortedposts});
});`
Query#find([criteria], [callback])
. Belki "ölçütler" en fazla üç argüman olabileceğini söyleyen bazı gizli el sıkışma olduğunu düşündüm, ancak türü "Nesne" olarak listeliyor.