2013-05-03 2 views
16

मैं संग्रहित संग्रह से एक जनसंख्या वाले दस्तावेज़ को सॉर्ट करना चाहता हूं, मुझे इसका अनुरोध करने में त्रुटि मिलती है।खोज अनुरोध में एक आबादी वाले दस्तावेज़ को कैसे क्रमबद्ध करें?

के एक दस्तावेज़ Group (समूह) और 'सदस्य' (Group.Members)

Group 
    .find({}) 
    .populate('Members') 

निर्माण पूरी तरह से स्वीकार करते हैं, लेकिन मैं इसे सुलझाने के लिए चाहते हैं तो मैं ऐसा करते हैं:

Group 
    .find({}) 
    .populate('Members', ['_id', 'name'], null, { sort: [[ 'created_at', 'desc' ]] }) 

मुझे यह जोड़कर TypeError: Invalid select() argument. Must be a string or object. त्रुटि मिलती है ...

उत्तर

14

यह उदाहरण मोंगोस 2.x के साथ मोंगोस 2.x के साथ काम करता है, इस synwtax का उपयोग करें:

Group 
    .find({}) 
    .populate('Members', '_id name', null, { sort: { 'created_at': -1 } }) 
39

तुम भी परोक्ष रूप से भरें का ही आवश्यक पैरामीटर निर्दिष्ट कर सकते हैं:

Kitten.find().populate({ 
    path: 'owner' 
    , select: 'name' 
    , match: { color: 'black' } 
    , options: { sort: { name: -1 }} 
}).exec(function (err, kittens) { 
    console.log(kittens[0].owner.name) // Zoopa 
}) 

// alternatively 
Kitten.find().populate('owner', 'name', null, {sort: { name: -1 }}).exec(function (err, kittens) { 
    console.log(kittens[0].owner.name) // Zoopa 
}) 

:

Group 
    .find({}) 
    .populate({path: 'Members', options: { sort: { 'created_at': -1 } } }) 

http://mongoosejs.com/docs/api.html#document_Document-populate

+0

क्रम काम नहीं कर रहा है –

+0

यह काम नहीं किया – mtro

6

पर और नेवला 4.x उपयोग के लिए इस वाक्य रचना एक नज़र संदर्भ: Mongoose docs

+3

यह मेरे लिए काम नहीं करता है। –

+0

इसके अलावा, मुझे mongoose में सॉर्ट विकल्प के व्यवहार का सटीक संदर्भ नहीं मिल रहा है। लेकिन वैकल्पिक वाक्यविन्यास में पथ विकल्प, चयन, मॉडल और मिलान के बाद निश्चित विकल्प 5 वें पैरामीटर के लिए है। –

+0

@NicoPasserini क्षमा करें अगर यह आपके लिए काम नहीं करता है, तो यह उत्तर में जुड़े आधिकारिक दस्तावेज़ीकरण का सटीक उदाहरण है। तो आप शायद गलत गलत कर रहे हैं। – Wtower

0

Schedule.find({}) 
 
     .populate({path: 'eventComments', options: {sort:{"commentDate": "descending"}}}) 
 
     .exec(function(err, result) { 
 
      if (err) { 
 
       throw err 
 
      } 
 

 
      else { 
 
       return res.json(result); 
 
      } 
 
    });

पी.एस.:

निम्नलिखित नेवला v5.0.5 में मेरे लिए काम किया इस उदाहरण और बिल्ली के बच्चे के उदाहरण के बीच महत्वपूर्ण अंतर यह है कि टिप्पणी दिनांक उद्धरणों में है, जबकि दिनांक (बिल्ली के बच्चे के उदाहरण में) नहीं है। आप में से कुछ के लिए यह बदलाव आवश्यक हो सकता है। उम्मीद है की यह मदद करेगा।

संबंधित मुद्दे