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

MongoDB में सरणी फील्ड में दिए गए तत्व का इंडेक्स ढूंढना ($indexOfArray)

$indexOfArray एग्रीगेशन ऑपरेटर

किसी सरणी फील्ड में विशिष्ट मान की **स्थिति (इंडेक्स)** ढूंढने के लिए (0-आधारित), एग्रीगेशन पाइपलाइन में $indexOfArray ऑपरेटर का उपयोग करें। यदि मान नहीं मिलता, तो -1 लौटाता है।

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

> db.getIndexDemo.insertOne({"InstructorName":"Chris","InstructorSubject":["MongoDB","MySQL","Java","C++"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbd5251de8cc557214c0df8") }

दस्तावेज़ देखना

> db.getIndexDemo.find().pretty();

आउटपुट:


"MongoDB" का इंडेक्स ढूंढना (पहला तत्व, इंडेक्स 0)

> db.getIndexDemo.aggregate([
...   { "$project": { "matchedIndex": { "$indexOfArray": [ "$InstructorSubject", "MongoDB" ] } } }
... ]);

आउटपुट:


"C++" का इंडेक्स ढूंढना (चौथा तत्व, इंडेक्स 3)

> db.getIndexDemo.aggregate([
...   { "$project": { "matchedIndex": { "$indexOfArray": [ "$InstructorSubject", "C++" ] } } }
... ]);

आउटपुट:


सिंटैक्स: { $indexOfArray: [ , , , ] }। वैकल्पिक start_index और end_index खोज सीमा को सीमित करते हैं।

नोट: सरणी इंडेक्स 0 से शुरू होते हैं। यह ऑपरेटर MongoDB 3.4+ में उपलब्ध है।

  1. - MongoDB क्वेरी: एग्रीगेशन में ऐरे एलिमेंट का औसत प्राप्त करें

    ऐरे एलिमेंट्स का औसत प्राप्त करने के लिए, $avg का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo584.insertOne({Marks:[75,50,85,60,80]}); { acknowledged : true, insertedId : ObjectId(5e91d827fd2d90c177b5bcc2) } find() मेथड की मदद से कलेक्शन के सभी दस्तावेज प्रदर्शित करें: >

  1. - MongoDB दस्तावेज़ों में विशिष्ट फ़ील्ड के ऐरे एलिमेंट्स काउंट करना

    किसी फ़ील्ड में ऐरे एलिमेंट्स की संख्या गिनने के लिए $size ऑपरेटर का उपयोग करें। डेमो डेटा > db.demo723.insertOne({Subject:[MySQL,MongoDB]}); > db.demo723.insertOne({Subject:[C]}); > db.demo723.insertOne({Subject:[C++,Java,Python]}); क्वेरी db.demo723.aggregate([ { $project: { count:

  1. - C++ में दी गई इंडेक्स रेंज [L - R] में ऐरे एलिमेंट को हटाना

    सबसे पहले मूल ऐरे और ऐरे एलिमेंट्स को हटाने के लिए एक्सक्लूसिव रेंज को परिभाषित करते हैं और मूल ऐरे की लंबाई भी ज्ञात करते हैं: int arr[] = { 2,4,6,8,10,12,14,16,18,20}; int L = 2, R = 6; int length = sizeof(arr) / sizeof(arr[0]); अब हम ऐरे में लूप चलाते हैं और यदि इंडेक्स पोजीशन (i) L से कम या बराब