MongoDB में sort() मेथड कर्सर पर परिणामों को सॉर्ट करता है; स्पष्ट "लूपिंग" की आवश्यकता नहीं है। शेल find() कर्सर स्वचालित रूप से पुनरावृत्त होता है जब प्रिंट किया जाता है।
उदाहरण: नाम संग्रह
> db.demo32.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e175158cfb11e5c34d898c5") }
> db.demo32.insertOne({"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e17515ccfb11e5c34d898c6") }
> db.demo32.insertOne({"Name":"Adam"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e175160cfb11e5c34d898c7") }
> db.demo32.insertOne({"Name":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e175165cfb11e5c34d898c8") }
> db.demo32.insertOne({"Name":"Carol"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e17517bcfb11e5c34d898c9") }
दस्तावेज़ देखना
> db.demo32.find();
आउटपुट: सम्मिलन क्रम में पांच दस्तावेज़।
आरोही क्रम में सॉर्ट करना
> db.demo32.find().sort({"Name":1});
आउटपुट:
{ "_id" : ObjectId("5e175160cfb11e5c34d898c7"), "Name" : "Adam" }
{ "_id" : ObjectId("5e17515ccfb11e5c34d898c6"), "Name" : "Bob" }
{ "_id" : ObjectId("5e17517bcfb11e5c34d898c9"), "Name" : "Carol" }
{ "_id" : ObjectId("5e175158cfb11e5c34d898c5"), "Name" : "Chris" }
{ "_id" : ObjectId("5e175165cfb11e5c34d898c8"), "Name" : "John" }
अवरोही क्रम
> db.demo32.find().sort({"Name":-1});
"लूपिंग" स्पष्टीकरण
शेल में, find() एक कर्सर लौटाता है। जब आप कर्सर टाइप करते हैं या .forEach() का उपयोग करते हैं, तो यह परिणामों पर पुनरावृत्त होता है। sort() कर्सर को संशोधित करता है पहले पुनरावृत्ति से, इसलिए कोई मैन्युअल लूप आवश्यक नहीं है।
प्रोग्रामेटिक पुनरावृत्ति (उदाहरण: Node.js)
const cursor = db.collection('demo32').find().sort({Name:1});
for await (const doc of cursor) {
console.log(doc);
}
प्रदर्शन
Name पर इंडेक्स बनाएं: db.demo32.createIndex({Name:1}) ताकि बड़े संग्रहों के लिए इन-मेमोरी सॉर्ट (32MB लिमिट) से बचा जा सके।