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

MongoDB $arrayElemAt

MongoDB में, $arrayElemAt एकत्रीकरण पाइपलाइन ऑपरेटर निर्दिष्ट सरणी अनुक्रमणिका पर तत्व लौटाता है।

यह दो तर्क स्वीकार करता है;

  • सरणी
  • उस तत्व की अनुक्रमणिका जिसे आप पुनः प्राप्त करना चाहते हैं

उदाहरण

मान लीजिए हमारे पास posts . नामक संग्रह है निम्नलिखित दस्तावेज़ के साथ:

{
	"_id" : 1,
	"title" : "Hello World!",
	"body" : "This is a test post for the purposes of testing",
	"tags" : [
		"html",
		"css",
		"sql",
		"xml"
	],
	"status" : null
}

इस दस्तावेज़ में, tags फ़ील्ड में एक सरणी है।

हम $arrayElemAt . का उपयोग कर सकते हैं एक विशिष्ट सूचकांक पर एक सरणी तत्व वापस करने के लिए ऑपरेटर।

उदाहरण:

db.posts.aggregate([
  {
    $project: {
      "tag": { $arrayElemAt: [ "$tags", 0 ] }
    }
  }
])

परिणाम:

{ "_id" : 1, "tag" : "html" }

इस मामले में, हम पहला सरणी तत्व लौटाते हैं। सरणी शून्य-आधारित हैं, और इसलिए 0 सरणी में पहले तत्व को संदर्भित करता है।

युक्ति:MongoDB 4.4 से, हम $first . का भी उपयोग कर सकते हैं सरणी में पहला तत्व वापस करने के लिए ऑपरेटर।

दूसरा तत्व प्राप्त करने का एक उदाहरण यहां दिया गया है:

db.posts.aggregate([
  {
    $project: {
      "tag": { $arrayElemAt: [ "$tags", 1 ] }
    }
  }
])

परिणाम:

{ "_id" : 1, "tag" : "css" }

सूचकांक के लिए नकारात्मक मान

आप दूसरे तर्क के लिए ऋणात्मक मान प्रदान कर सकते हैं। जब आप ऐसा करते हैं, $arrayElemAt सरणी के अंत से पीछे की ओर गिना जाता है।

उदाहरण:

db.posts.aggregate([
  {
    $project: {
      "tag": { $arrayElemAt: [ "$tags", -1 ] }
    }
  }
])

परिणाम:

{ "_id" : 1, "tag" : "xml" }

इस मामले में, हमें सरणी में अंतिम तत्व मिलता है।

MongoDB 4.4 से, हम $last . का भी उपयोग कर सकते हैं अंतिम सरणी तत्व प्राप्त करने के लिए ऑपरेटर।

अन्य ऑपरेटरों के साथ संयोजन

आप $arrayElemAt . का उपयोग कर सकते हैं आपको आवश्यक परिणाम देने के लिए अन्य ऑपरेटरों के साथ।

इसे $binarySize . के साथ संयोजित करने का एक उदाहरण यहां दिया गया है एक विशिष्ट सरणी तत्व के आकार को वापस करने के लिए ऑपरेटर।

db.posts.aggregate([
  {
    $project: {
      "tagsSize": { $binarySize: { $arrayElemAt: [ "$tags", 0 ] } }
    }
  }
])

परिणाम:

{ "_id" : 1, "tagsSize" : 4 }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. फ़ील्ड के प्रकार को कैसे बदलें?

  2. 9 नई MongoDB विशेषताएं - MongoDB में मास्टर करना सीखना चाहिए

  3. NodeJs एप्लिकेशन और मॉड्यूल में Mongodb से कनेक्शन का ठीक से पुन:उपयोग कैसे करें

  4. PyMongo 3 ServerSelectionTimeoutError क्यों दे रहा है?

  5. MongoDB रिवर्स रेगेक्स