MongoDB में अधिकतम मान वाला दस्तावेज़ खोजना
किसी फ़ील्ड के आधार पर अधिकतम मान वाला दस्तावेज़ खोजने के लिए sort() को डिसेंडिंग ऑर्डर में उपयोग करके limit(1) के साथ जोड़ें।
सैंपल डेटा बनाना
> db.demo241.insertOne({"Marks":67});
{ "acknowledged" : true, "insertedId" : ObjectId("5e441f729af932883c61ea40") }
> db.demo241.insertOne({"Marks":89});
{ "acknowledged" : true, "insertedId" : ObjectId("5e441f769af932883c61ea41") }
> db.demo241.insertOne({"Marks":78});
{ "acknowledged" : true, "insertedId" : ObjectId("5e441f789af932883c61ea42") }
सभी दस्तावेज़ देखना
> db.demo241.find();
आउटपुट:
{ "_id" : ObjectId("5e441f729af932883c61ea40"), "Marks" : 67 }
{ "_id" : ObjectId("5e441f769af932883c61ea41"), "Marks" : 89 }
{ "_id" : ObjectId("5e441f789af932883c61ea42"), "Marks" : 78 }
अधिकतम मार्क्स वाला दस्तावेज़ खोजना
> db.demo241.find().sort({Marks:-1}).limit(1);
आउटपुट:
{ "_id" : ObjectId("5e441f769af932883c61ea41"), "Marks" : 89 }
वैकल्पिक विधियाँ
एग्रीगेशन का उपयोग (अधिक लचीला)
> db.demo241.aggregate([
{$sort: {Marks: -1}},
{$limit: 1}
]);
अधिकतम मान के साथ दस्तावेज़ खोजना (फाइंड वन)
> db.demo241.findOne({}, {sort: {Marks: -1}});
महत्वपूर्ण बिंदु
sort({Marks: -1})- डिसेंडिंग ऑर्डर (सबसे बड़ा पहले)limit(1)- केवल पहला परिणाम लौटाता है- इंडेक्स होने पर क्वेरी बहुत तेज़ होती है:
db.demo241.createIndex({Marks: -1}) - यदि एक से अधिक दस्तावेज़ों में समान अधिकतम मान हो, तो पहला मिला दस्तावेज़ लौटाया जाता है