MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB में सरणी फ़ील्ड में दिए गए तत्व का सूचकांक प्राप्त करें

MongoDB संस्करण 3.4 से शुरू करके हम $indexOfArray ऑपरेटर उस इंडेक्स को वापस करने के लिए जिस पर किसी दिए गए तत्व को सरणी में पाया जा सकता है।

$indexOfArray तीन तर्क लेता है। पहला $ . के साथ पहले से लगे सरणी फ़ील्ड का नाम है साइन करें।

दूसरा तत्व है और तीसरा वैकल्पिक सूचकांक है जिस पर खोज शुरू करना है। $indexOfArray पहली अनुक्रमणिका देता है जिस पर तत्व पाया जाता है यदि खोज शुरू करने के लिए अनुक्रमणिका निर्दिष्ट नहीं है।

डेमो:

> db.collection.insertOne( { "_id" : 123, "food": [ "apple", "mango", "banana", "mango" ] } )
{ "acknowledged" : true, "insertedId" : 123 }
> db.collection.aggregate( [ { "$project": { "matchedIndex": { "$indexOfArray": [ "$food", "mango" ] } } } ] )
{ "_id" : 123, "matchedIndex" : 1 }
> db.collection.aggregate( [ { "$project": { "matchedIndex": { "$indexOfArray": [ "$food", "mango", 2 ] } } } ] )
{ "_id" : 123, "matchedIndex" : 3 }
> db.collection.aggregate( [ { "$project": { "matchedIndex": { "$indexOfArray": [ "$food", "apricot" ] } } } ]  )
{ "_id" : 123, "matchedIndex" : -1 }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB _id की सरणी में कहां चुनें?

  2. स्पार्क मोंगो कनेक्टर फिल्टर को नीचे क्यों नहीं धकेलता है?

  3. MongoDB:WriteResult.getN () हमेशा 0 देता है?

  4. $प्रोजेक्ट चरण में $in ऑपरेटर का उपयोग करके फ़िल्टर सरणी

  5. नेवला किसी ऑब्जेक्ट को नेस्टेड सरणी से हटा दें