मानगो एपीआई आबादी वाले क्षेत्रों पर छँटाई का समर्थन करता प्रतीत होता है, लेकिन एक बग है जो इसे पूरी तरह से तोड़ देता है: https://github.com/Automattic/mongoose/issues/2202 . आपको परिणाम मिलता है, लेकिन यह बिल्कुल गलत है।
कम मात्रा में डेटा के लिए, जावास्क्रिप्ट Array.prototype.sort() . ध्यान रखें कि यह सीधे क्रमबद्ध सरणी को संशोधित करता है।
इस मामले में मैंने जो किया है वह उस मॉडल के लिए स्कीमा में सॉर्ट कुंजी गुण जोड़ना है जिसे आप सॉर्ट करना चाहते हैं। आपके उदाहरण के लिए, आप यह कर सकते हैं:
var FollowActionSchema = new Schema({
// ...
'brandSortKey': { type: String },
'brand': {
type: ObjectId,
ref: 'Brand'
},
// ...
});
यह सही नहीं है, क्योंकि आपको इस गुण को स्पष्ट रूप से सही कुंजी के साथ स्वयं सेट करना होगा:
var FollowAction = Model('FollowAction', FollowActionSchema);
var aBrand = // some brand object
var f = new FollowAction({
brand: aBrand._id,
brandSortKey: aBrand.name
// other properties
});
लेकिन, फिर आप सीधे Mongoose API (या MongoDB) के माध्यम से सॉर्ट कर सकते हैं:
FollowAction.find({})
.sort({ brandSortKey:1 })
.exec(function (err, sortedResults) {
// do something with sorted results.
});