इसके लिए MongoDB में $group के साथ $max का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं -
> db.demo510.insertOne(... {... विवरण:[... {... नाम:"क्रिस",... स्कोर:56...},... {.. नाम:"डेविड",... स्कोर:45...}...]...}...);{ "स्वीकृत" :सच, "insertId" :ObjectId("5e8845fa987b6e0e9d18f582")}> db .demo510.insertOne(... {... विवरण:[... {... नाम:"क्रिस",... स्कोर:56...},... {... नाम:"डेविड ",... स्कोर:47...}...]...}...);{"स्वीकृत" :सच, "insertedId" :ObjectId("5e8845fb987b6e0e9d18f583")}> db.demo510.insertOne( ... {... विवरण:[... {... नाम:"क्रिस",... स्कोर:45...},... {... नाम:"डेविड",... स्कोर:91... }... ]... }... );{ "स्वीकृत" :सच, "insertedId" :ObjectId("5e8845fb987b6e0e9d18f584")}
संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -
> db.demo510.find();
यह निम्नलिखित आउटपुट देगा -
{ "_id" :ObjectId("5e8845fa987b6e0e9d18f582"), "details" :[{"Name" :"Chris", "Score" :56 },{ "Name" :"David", "Score" :45 } ] }{ "_id" :ObjectId ("5e8845fb987b6e0e9d18f583"), "विवरण" :[ { "नाम" :"क्रिस", "स्कोर" :56 }, { "नाम" :"डेविड", "स्कोर" :47 } ] }{ "_id" :ObjectId ("5e8845fb987b6e0e9d18f584"), "विवरण" :[ { "नाम" :"क्रिस", "स्कोर" :45 }, { "नाम" :"डेविड", "स्कोर" :91 } ] }
एग्रीगेशन में अधिकतम मान वाले ऐरे एलिमेंट्स को मैच और ग्रुप करने के लिए क्वेरी निम्नलिखित है -
> db.demo510.aggregate([... {"$project":{... "विवरण":{... "$arrayElemAt":[... {"$filter":{.. . "इनपुट":"$विवरण",... "as":"res",... "cond":{... "$eq":[... "$$res.Score",। .. { "$ अधिकतम":{... "$ नक्शा":{... "इनपुट":"$ विवरण", ... "के रूप में":"बाहर", ... "में":"$ $आउट।स्कोर"...}...}}... ]...}...}},... 0... ]...}...}},... { "$group":{... "_id":"$details.Name",... "Name":{ "$first":"$details.Name" },... "गिनती":{ " $sum":1 }... }}... ])
यह निम्नलिखित आउटपुट देगा -
{ "_id" :"David", "Name" :"David", "count" :1 }{ "_id" :"Chris", "Name" :"Chris", "count" :2 }पूर्व>