MongoDB-এ সবচেয়ে gầnে ইনসার্ট করা ডকুমেন্ট বের করতে _id ফিল্ডে নেমেরিক অর্ডার (ObjectId-তে টাইমস্ট্যাম্প থাকে) অনুযায়ী সর্ট করে limit(1) ব্যবহার করুন।
উদাহরণ
কয়েকটি ডকুমেন্ট ইনসার্ট করুন:
> 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(ObjectId) নেমেরিক অর্ডারে ডেসেন্ডিং সর্ট করে, যাতে সর্বশেষ ইনসার্ট করা ডকুমেন্ট প্রথমে আসে।limit(1)— শুধু প্রথম ডকুমেন্টটি ফেরত দেয়।
নোট: এটি ObjectId ব্যবহার করার সময় কাজ করে, কারণ ObjectId-র প্রথম ৪ বাইট টাইমস্ট্যাম্প। যদি কাস্টম _id ব্যবহার করেন, তবে আলাদা createdAt ফিল্ড রাখা ভালো।