Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB दस्तावेज़ों में सब-सरणियों से उच्चतम मान ढूंढना

एग्रीगेशन पाइपलाइन के साथ नेस्टेड सरणी में अधिकतम

दस्तावेज़ों में नेस्टेड सरणी (StudentDetails) के अंदर किसी फील्ड (StudentMathScore) का **उच्चतम मान** ढूंढने के लिए, एग्रीगेशन पाइपलाइन का उपयोग करें: $project, $unwind, $sort, $limit।

उदाहरण: डेटा डालना

> db.findHighestValueDemo.insertOne(
... {
...   _id: 10001,
...   "StudentDetails": [
...     { "StudentName": "Chris", "StudentMathScore": 56 },
...     { "StudentName": "Robert", "StudentMathScore": 47 },
...     { "StudentName": "John", "StudentMathScore": 98 }
...   ]
... }
... );
{ "acknowledged" : true, "insertedId" : 10001 }
> db.findHighestValueDemo.insertOne(
... {
...   _id: 10002,
...   "StudentDetails": [
...     { "StudentName": "Ramit", "StudentMathScore": 89 },
...     { "StudentName": "David", "StudentMathScore": 76 },
...     { "StudentName": "Bob", "StudentMathScore": 97 }
...   ]
... }
... );
{ "acknowledged" : true, "insertedId" : 10002 }

एग्रीगेशन क्वेरी

> db.findHighestValueDemo.aggregate([
...   {$project: {"StudentDetails.StudentName":1, "StudentDetails.StudentMathScore":1}},
...   {$unwind: "$StudentDetails"},
...   {$sort: {"StudentDetails.StudentMathScore": -1}},
...   {$limit: 1}
... ]).pretty();

आउटपुट


चरण व्याख्या:

  1. $project: केवल आवश्यक फील्ड रखता है।
  2. $unwind: StudentDetails सरणी को डी-कंस्ट्रक्ट करता है, प्रत्येक तत्व के लिए एक अलग दस्तावेज़ आउटपुट करता है।
  3. $sort: स्कोर के अनुसार अवरोही क्रम में क्रमबद्ध करता है।
  4. $limit: 1: शीर्ष 1 परिणाम लेता है (उच्चतम स्कोर)।

वैकल्पिक (प्रति दस्तावेज़ अधिकतम): यदि आपको **प्रत्येक** दस्तावेज़ के लिए उसके अपने सरणी का अधिकतम चाहिए, तो $max एक्यूमुलेटर के साथ $group या $reduce का उपयोग करें।

  1. - MongoDB शेल का उपयोग करके दस्तावेज़ों से विशिष्ट मान वाले आइटम कैसे प्राप्त करें?

    MongoDB शेल में find() से विशिष्ट मान वाले दस्तावेज़ फ़िल्टर करें विशिष्ट मान वाले आइटम प्राप्त करने के लिए, बस find() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाते हैं: > db.demo563.insertOne({Name:Chris,Age:21,isMarried:true}) { acknowledged : true, insertedId : ObjectId(5e8f546c54b4472

  1. - MongoDB दस्तावेजों में विशिष्ट मान से ऊपर के मान खोजें

    विशिष्ट मान से ऊपर के मान खोजने के लिए, MongoDB में $gte का उपयोग करके सिंटैक्स निम्न है: db.yourCollectionName.find({yourFieldName:{$gte:yourValue}}); आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo571.insertOne({Price:140}); { acknowledged : true, insertedId : ObjectId(5e909b3439cfeaaf0b

  1. - MySQL में उच्चतम से निम्नतम मान तक ऑर्डर कैसे करें?

    ORDER BY DESC/ASC से परिणाम क्रमबद्ध करें क्वेरी परिणाम को किसी कॉलम के मान के आधार पर उच्चतम से निम्नतम (अवरोही) या निम्नतम से उच्चतम (आरोही) क्रम में सॉर्ट करने के लिए ORDER BY क्लॉज का उपयोग करें। सिंटैक्स -- उच्चतम से निम्नतम (अवरोही) SELECT * FROM table ORDER BY column DESC; -- निम्नतम से उच्