Mongodb: कैसे जांचें कि फ़ील्ड मौजूद है या नहीं


यह जांचने के लिए कि MongoDB के संग्रह में कोई फ़ील्ड मौजूद है या नहीं, आप निम्न विधियों का उपयोग कर सकते हैं:

विधि 1: जाँचें कि क्या फ़ील्ड मौजूद है

 db.myCollection.find({ " myField ": { $exists : true } })

यह विधि जाँच करती है कि myCollection नामक संग्रह में “myField” मौजूद है या नहीं। यदि ऐसा है, तो यह फ़ील्ड नाम वाले सभी दस्तावेज़ लौटा देता है। यदि ऐसा नहीं होता है, तो यह कुछ भी नहीं लौटाता है।

विधि 2: जांचें कि क्या एम्बेडेड फ़ील्ड मौजूद है

 db.myCollection.find({ " myField.embeddedField ": { $exists : true } })

यह विधि जांच करती है कि “myField” फ़ील्ड में फ़ील्ड नाम “embeddedField” myCollection नामक संग्रह में मौजूद है या नहीं। यदि ऐसा है, तो यह फ़ील्ड नाम वाले सभी दस्तावेज़ लौटा देता है। यदि ऐसा नहीं होता है, तो यह कुछ भी नहीं लौटाता है।

निम्नलिखित उदाहरण दिखाते हैं कि निम्नलिखित दस्तावेज़ों के साथ संग्रह टीम के साथ अभ्यास में प्रत्येक पद्धति का उपयोग कैसे किया जाए:

 db.teams.insertOne({team: "Mavs", class: {conf: "Western", div: "A"}, points: 31 })
db.teams.insertOne({team: "Spurs", class: {conf: "Western", div: "A"}, points: 22 })
db.teams.insertOne({team: "Jazz", class: {conf: "Western", div: "B"}, points: 19 })
db.teams.insertOne({team: "Celtics", class: {conf: "Eastern", div: "C"}, points: 26 })

उदाहरण 1: जांचें कि क्या फ़ील्ड मौजूद है

निम्नलिखित कोड दिखाता है कि कैसे जांचा जाए कि फ़ील्ड नाम “पॉइंट्स” टीम संग्रह में मौजूद है या नहीं:

 db.teams.find({ " points ": { $exists : true } })

यह क्वेरी निम्नलिखित दस्तावेज़ लौटाती है:

 { _id: ObjectId("6203d10c1e95a9885e1e7637"),
  team: 'Mavs',
  class: { conf: 'Western', div: 'A' },
  points: 31 }
{ _id: ObjectId("6203d10c1e95a9885e1e7638"),
  team: 'Spurs',
  class: { conf: 'Western', div: 'A' },
  points: 22 }
{ _id: ObjectId("6203d10c1e95a9885e1e7639"),
  team: 'Jazz',
  class: { conf: 'Western', div: 'B' },
  points: 19 }
{ _id: ObjectId("6203d10c1e95a9885e1e763a"),
  team: 'Celtics',
  class: { conf: 'Eastern', div: 'C' },
  points: 26 }

चूँकि फ़ील्ड नाम “पॉइंट्स” मौजूद है, फ़ील्ड “पॉइंट्स” वाला प्रत्येक दस्तावेज़ वापस कर दिया जाता है।

मान लीजिए कि हम इसके बजाय जाँचते हैं कि फ़ील्ड नाम “चुराता है” टीम संग्रह में मौजूद है या नहीं:

 db.teams.find({ " steals ": { $exists : true } })

चूँकि यह फ़ील्ड मौजूद नहीं है, कोई आउटपुट नहीं लौटाया जाता है।

उदाहरण 2: जांचें कि क्या एम्बेडेड फ़ील्ड मौजूद है

निम्नलिखित कोड दिखाता है कि कैसे जांचें कि टीम संग्रह के “क्लास” फ़ील्ड में अंतर्निहित फ़ील्ड नाम “div” मौजूद है या नहीं:

 db.teams.find({ " class.div ": { $exists : true } })

यह क्वेरी निम्नलिखित दस्तावेज़ लौटाती है:

 { _id: ObjectId("6203d10c1e95a9885e1e7637"),
  team: 'Mavs',
  class: { conf: 'Western', div: 'A' },
  points: 31 }
{ _id: ObjectId("6203d10c1e95a9885e1e7638"),
  team: 'Spurs',
  class: { conf: 'Western', div: 'A' },
  points: 22 }
{ _id: ObjectId("6203d10c1e95a9885e1e7639"),
  team: 'Jazz',
  class: { conf: 'Western', div: 'B' },
  points: 19 }
{ _id: ObjectId("6203d10c1e95a9885e1e763a"),
  team: 'Celtics',
  class: { conf: 'Eastern', div: 'C' },
  points: 26 }

क्योंकि एम्बेडेड फ़ील्ड “div” का नाम फ़ील्ड “क्लास” में मौजूद है, एम्बेडेड फ़ील्ड “div” वाला प्रत्येक दस्तावेज़ वापस कर दिया जाता है।

मान लीजिए कि हम इसके बजाय जांचते हैं कि क्या अंतर्निहित फ़ील्ड नाम “डिवीजन” टीम संग्रह में “क्लास” फ़ील्ड में मौजूद है:

 db.teams.find({ " class.division ": { $exists : true } })

चूँकि यह अंतर्निर्मित फ़ील्ड मौजूद नहीं है, इसलिए कोई आउटपुट नहीं लौटाया जाता है।

नोट : आप $exists फ़ंक्शन के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि MongoDB में अन्य सामान्य ऑपरेशन कैसे करें:

MongoDB: सभी फ़ील्ड नामों को कैसे सूचीबद्ध करें
MongoDB: फ़ील्ड का नाम कैसे बदलें
MongoDB: नए फ़ील्ड कैसे जोड़ें
MongoDB: फ़ील्ड्स को कैसे हटाएं

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *