MongoDB में सॉर्टिंग और लिमिट: नवीनतम N दस्तावेज़ प्राप्त करना
sort() और limit() का संयोजन "वर्तमान और पिछले" या "नवीनतम N" दस्तावेज़ प्राप्त करने के लिए उपयोग किया जाता है। _id पर अवरोही सॉर्ट (नवीनतम पहले) के साथ limit(2) अंतिम 2 दस्तावेज़ देता है।
नमूना डेटा
> db.demo360.insertOne({id: 101, "Name": "Chris"});
{ "acknowledged": true, "insertedId": ObjectId("5e56a10c54a481fef8ec7a15") }
> db.demo360.insertOne({id: 102, "Name": "David"});
{ "acknowledged": true, "insertedId": ObjectId("5e56a11254a481fef8ec7a16") }
> db.demo360.insertOne({id: 103, "Name": "Bob"});
{ "acknowledged": true, "insertedId": ObjectId("5e56a11a54a481fef8ec7a17") }
> db.demo360.insertOne({id: 104, "Name": "Mike"});
{ "acknowledged": true, "insertedId": ObjectId("5e56a11f54a481fef8ec7a18") }
क्वेरी: id <= 102 वाले दस्तावेज़ों में से नवीनतम 2
> db.demo360.find({id: {$lte: 102}}, {id: 1, Name: 1}).sort({_id: -1}).limit(2);
परिणाम
{ "_id": ObjectId("5e56a11254a481fef8ec7a16"), "id": 102, "Name": "David" }
{ "_id": ObjectId("5e56a10c54a481fef8ec7a15"), "id": 101, "Name": "Chris" }
_id पर sort({_id: -1}) नवीनतम पहले रखता है (क्योंकि ObjectId में टाइमस्टैम्प होता है)। limit(2) केवल शीर्ष 2 लौटाता है। प्रोजेक्शन {id: 1, Name: 1} केवल आवश्यक फ़ील्ड्स शामिल करता है।