जवाबों:
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()
फिर से कॉल करने की आवश्यकता है (अधिक मापदंडों के साथ या बिना - दक्षता कारणों के लिए किसी की आवश्यकता नहीं होनी चाहिए) जो आपको अपने कॉलबैक में परिणाम सेट करने की अनुमति देगा।
मैं यह करता हूँ:
Data.find( { $query: { user: req.user }, $orderby: { dateAdded: -1 } } function ( results ) {
...
})
यह सबसे हाल की चीजों को पहले दिखाएगा।
$orderby
MongoDB 3.2 में पदावनत किया गया है, इसलिए इसे अब उपयोग नहीं किया जाना चाहिए।
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])
। मैंने सोचा कि शायद कुछ गुप्त हैंडशेक थे जो कहते हैं कि "मानदंड" तीन तर्कों तक हो सकते हैं, लेकिन यह "ऑब्जेक्ट" के रूप में प्रकार को सूचीबद्ध करता है।