MongoDB में sort() का उपयोग करके ObjectId द्वारा सॉर्ट करना
MongoDB में ObjectId में टाइमस्टैम्प एम्बेडेड होता है, इसलिए इस पर सॉर्ट करने से दस्तावेज़ इन्सर्शन क्रम के अनुसार क्रमबद्ध होते हैं। sort() मेथड का उपयोग करें।
उदाहरण: संग्रह और दस्तावेज़ बनाना
> db.demo403.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e6f89b0fac4d418a017858e") }
> db.demo403.insertOne({"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e6f89b2fac4d418a017858f") }
> db.demo403.insertOne({"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e6f89b5fac4d418a0178590") }
> db.demo403.insertOne({"Name":"Adam"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e6f89b8fac4d418a0178591") }
सभी दस्तावेज़ देखना
> db.demo403.find();
आउटपुट:
{ "_id" : ObjectId("5e6f89b0fac4d418a017858e"), "Name" : "Chris" }
{ "_id" : ObjectId("5e6f89b2fac4d418a017858f"), "Name" : "David" }
{ "_id" : ObjectId("5e6f89b5fac4d418a0178590"), "Name" : "Bob" }
{ "_id" : ObjectId("5e6f89b8fac4d418a0178591"), "Name" : "Adam" }
ObjectId द्वारा अवरोही क्रम में सॉर्ट (नवीनतम पहले)
> db.demo403.find().sort({_id:-1});
आउटपुट:
{ "_id" : ObjectId("5e6f89b8fac4d418a0178591"), "Name" : "Adam" }
{ "_id" : ObjectId("5e6f89b5fac4d418a0178590"), "Name" : "Bob" }
{ "_id" : ObjectId("5e6f89b2fac4d418a017858f"), "Name" : "David" }
{ "_id" : ObjectId("5e6f89b0fac4d418a017858e"), "Name" : "Chris" }
मुख्य बिंदु:
_id: 1- आरोही क्रम (सबसे पुराना पहले)_id: -1- अवरोही क्रम (सबसे नया पहले)- ObjectId के पहले 4 बाइट्स यूनिक्स टाइमस्टैम्प होते हैं
- इसलिए ObjectId सॉर्ट ≈ निर्माण समय सॉर्ट
उपयोग के मामले:
- हाल ही में जोड़े गए दस्तावेज़ प्राप्त करना
- लॉग/इवेंट डेटा को समयानुक्रम में देखना
- पेजिनेशन के लिए कर्सर-आधारित दृष्टिकोण
प्रदर्शन: _id पर डिफ़ॉल्ट इंडेक्स होता है, इसलिए सॉर्ट बहुत तेज़ है।
नोट: यदि कस्टम _id उपयोग कर रहे हैं (जैसे UUID), तो यह क्रम लागू नहीं हो सकता।