MongoDB में अंतिम डॉक्यूमेंट खोजना
कलेक्शन में अंतिम ऑब्जेक्ट खोजने के लिए, पहले sort() से मानों को सॉर्ट करें। limit() का उपयोग करके रिकॉर्ड्स की संख्या प्राप्त करें।
कलेक्शन बनाना
> db.demo141.insertOne({"Name":"Chris"});
{ "acknowledged": true, "insertedId": ObjectId("5e31c347fdf09dd6d08539ae") }
> db.demo141.insertOne({"Name":"David"});
{ "acknowledged": true, "insertedId": ObjectId("5e31c34bfdf09dd6d08539af") }
> db.demo141.insertOne({"Name":"Bob"});
{ "acknowledged": true, "insertedId": ObjectId("5e31c34ffdf09dd6d08539b0") }
> db.demo141.insertOne({"Name":"Mike"});
{ "acknowledged": true, "insertedId": ObjectId("5e31c352fdf09dd6d08539b1") }
सभी डॉक्यूमेंट्स
> db.demo141.find();
{ "_id": ObjectId("5e31c347fdf09dd6d08539ae"), "Name": "Chris" }
{ "_id": ObjectId("5e31c34bfdf09dd6d08539af"), "Name": "David" }
{ "_id": ObjectId("5e31c34ffdf09dd6d08539b0"), "Name": "Bob" }
{ "_id": ObjectId("5e31c352fdf09dd6d08539b1"), "Name": "Mike" }
अंतिम ऑब्जेक्ट क्वेरी
> db.demo141.find().sort({_id:-1}).limit(1);
परिणाम
{ "_id": ObjectId("5e31c352fdf09dd6d08539b1"), "Name": "Mike" }
व्याख्या
- sort({_id: -1}): _id के अवरोही क्रम में सॉर्ट करता है (नवीनतम पहले)
- _id ऑब्जेक्टआईडी: इसमें टाइमस्टैम्प होता है, इसलिए इन्सर्शन क्रम दर्शाता है
- limit(1): केवल पहला (सबसे नवीनतम) डॉक्यूमेंट लौटाता है
वैकल्पिक दृष्टिकोण
// बनावट समय फील्ड का उपयोग करके (यदि मौजूद हो)
db.demo141.find().sort({createdAt: -1}).limit(1)
// $natural ऑर्डर (डिस्क ऑर्डर) - कम विश्वसनीय
db.demo141.find().sort({$natural: -1}).limit(1)
_id द्वारा सॉर्ट करना सबसे विश्वसनीय है क्योंकि ObjectId में टाइमस्टैम्प एम्बेडेड होता है।