MongoDB में अंतिम डाला गया दस्तावेज़ प्राप्त करने के लिए _id फ़ील्ड पर अवरोही क्रम में सॉर्ट करें और limit(1) लागू करें। MongoDB का ObjectId टाइमस्टैम्प शामिल करता है, इसलिए यह स्वाभाविक रूप से इन्सर्शन क्रम दर्शाता है।
उदाहरण
कलेक्शन बनाएं:
> db.getLastInsertedDocument.insertOne({"Name":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefb17eef71edecf6a1f6a8") }
> db.getLastInsertedDocument.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefb181ef71edecf6a1f6a9") }
> db.getLastInsertedDocument.insertOne({"Name":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefb185ef71edecf6a1f6aa") }
सभी दस्तावेज़ देखें:
> db.getLastInsertedDocument.find();
{ "_id" : ObjectId("5cefb17eef71edecf6a1f6a8"), "Name" : "John" }
{ "_id" : ObjectId("5cefb181ef71edecf6a1f6a9"), "Name" : "Chris" }
{ "_id" : ObjectId("5cefb185ef71edecf6a1f6aa"), "Name" : "Robert" }
अंतिम दस्तावेज़ प्राप्त करें
> db.getLastInsertedDocument.find({}).sort({_id: -1}).limit(1);
आउटपुट:
{ "_id" : ObjectId("5cefb185ef71edecf6a1f6aa"), "Name" : "Robert" }
व्याख्या:
sort({_id: -1})- _id के अवरोही क्रम में सॉर्ट (नवीनतम पहले)limit(1)- केवल पहला परिणाम लौटाता है
विकल्प: यदि आपके पास अलग टाइमस्टैम्प फ़ील्ड है (जैसे createdAt), तो उसका उपयोग करें:
db.collection.find().sort({createdAt: -1}).limit(1)
नोट: यह तरीका ObjectId का उपयोग करने वाले कलेक्शन के लिए काम करता है। कस्टम _id वाले कलेक्शन के लिए टाइमस्टैम्प फ़ील्ड आवश्यक है।