MongoDB में सरणी तत्व का इंडेक्स प्राप्त करने के लिए $indexOfArray ऑपरेटर का उपयोग किया जाता है। आइए एक संग्रह बनाते हैं:
> db.demo65.insertOne({"ListOfValues":[10,20,30]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e28990ecfb11e5c34d89938") }
> db.demo65.insertOne({"ListOfValues":[50,60,70,100]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e28991ecfb11e5c34d89939") }
> db.demo65.insertOne({"ListOfValues":[30,40,89,91,98]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e28992bcfb11e5c34d8993a") }
सभी दस्तावेज़ देखने के लिए:
> db.demo65.find();
आउटपुट:
{ "_id" : ObjectId("5e28990ecfb11e5c34d89938"), "ListOfValues" : [ 10, 20, 30 ] }
{ "_id" : ObjectId("5e28991ecfb11e5c34d89939"), "ListOfValues" : [ 50, 60, 70, 100 ] }
{ "_id" : ObjectId("5e28992bcfb11e5c34d8993a"), "ListOfValues" : [ 30, 40, 89, 91, 98 ] }
सरणी तत्व का इंडेक्स प्राप्त करने की क्वेरी
$project के साथ $indexOfArray का उपयोग करके मान 30 का इंडेक्स खोजें:
> db.demo65.aggregate(
... [
... {
... $project:
... {
... IndexOfAnArrayElement: { $indexOfArray: [ "$ListOfValues", 30] },
... }
... }
... ]
... );
परिणाम:
{ "_id" : ObjectId("5e28990ecfb11e5c34d89938"), "IndexOfAnArrayElement" : 2 }
{ "_id" : ObjectId("5e28991ecfb11e5c34d89939"), "IndexOfAnArrayElement" : -1 }
{ "_id" : ObjectId("5e28992bcfb11e5c34d8993a"), "IndexOfAnArrayElement" : 0 }
ध्यान दें: यदि तत्व नहीं मिलता है, तो -1 वापस किया जाता है। इंडेक्स 0-आधारित होता है।