Mongodb: प्रश्नों में or ऑपरेटर ($or) का उपयोग कैसे करें


आप एकाधिक मानदंडों से मेल खाने वाले दस्तावेज़ ढूंढने के लिए MongoDB में $or ऑपरेटर का उपयोग कर सकते हैं।

यह ऑपरेटर निम्नलिखित मूल सिंटैक्स का उपयोग करता है:

 db.myCollection.find({
  “ $or ”: [
    {" field1 ": " hello "},
    {" field2 ": { $gte : 10 }}
  ]
})

यह विशेष उदाहरण myCollection नामक संग्रह में सभी दस्तावेज़ों की खोज करता है जहां फ़ील्ड 1 “हैलो” के बराबर है या फ़ील्ड 2 का मान 10 से अधिक या उसके बराबर है।

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

 db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8})
db.teams.insertOne({team: " Mavs ", points: 35, rebounds: 12})
db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7})
db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5})
db.teams.insertOne({team: " Spurs ", points: 23, rebounds: 9})

उदाहरण 1: दो फ़ील्ड के साथ OR ऑपरेटर का उपयोग करें

निम्नलिखित कोड दिखाता है कि टीमों के संग्रह में उन सभी दस्तावेज़ों को कैसे खोजा जाए जहां “टीम” फ़ील्ड “स्पर्स” के बराबर है या “पॉइंट्स” फ़ील्ड का मान 31 से अधिक या उसके बराबर है:

 db.teams.find({
  “ $or ”: [
    {" team ": " Spurs "},
    {" points ": { $gte : 31 }}
  ]
})

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

 { _id: ObjectId("62018750fd435937399d6b6f"),
  team: 'Mavs',
  points: 35,
  rebounds: 12 }
{ _id: ObjectId("62018750fd435937399d6b70"),
  team: 'Spurs',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("62018750fd435937399d6b71"),
  team: 'Spurs',
  points: 25,
  rebounds: 5 }
{ _id: ObjectId("62018750fd435937399d6b72"),
  team: 'Spurs',
  points: 23,
  rebounds: 9 }

ध्यान दें कि आउटपुट में प्रत्येक दस्तावेज़ में टीम फ़ील्ड में “स्पर्स” या पॉइंट फ़ील्ड में 31 से अधिक या उसके बराबर मान होता है।

उदाहरण 2: दो से अधिक फ़ील्ड के साथ OR ऑपरेटर का उपयोग करना

निम्नलिखित कोड दिखाता है कि टीमों के संग्रह में सभी दस्तावेज़ों को कैसे खोजा जाए जहां “टीम” फ़ील्ड “माव्स” के बराबर है या “पॉइंट्स” फ़ील्ड का मान 25 से अधिक या उसके बराबर है या “रिबाउंड्स” फ़ील्ड का मान है 8 से कम है:

 db.teams.find({
  “ $or ”: [
    {" team ": " Mavs "},
    {" points ": { $gte : 25 }},
    {" rebounds ": { $lt : 8 }}
  ]
})

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

 { _id: ObjectId("62018750fd435937399d6b6e"),
  team: 'Mavs',
  points: 30,
  rebounds: 8 }
{ _id: ObjectId("62018750fd435937399d6b6f"),
  team: 'Mavs',
  points: 35,
  rebounds: 12 }
{ _id: ObjectId("62018750fd435937399d6b70"),
  team: 'Spurs',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("62018750fd435937399d6b71"),
  team: 'Spurs',
  points: 25,
  rebounds: 5 }

ध्यान दें कि इनमें से प्रत्येक दस्तावेज़ तीन मानदंडों में से एक या अधिक को पूरा करता है:

  • “टीम” फ़ील्ड ” माव्स ” के बराबर है
  • “अंक” फ़ील्ड का मान 25 से अधिक या उसके बराबर है
  • “रिबाउंड्स” फ़ील्ड का मान 8 से कम है

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

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

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

MongoDB: प्रश्नों में AND ऑपरेटर का उपयोग कैसे करें
MongoDB: कैसे जांचें कि फ़ील्ड में कोई स्ट्रिंग है या नहीं
MongoDB: “NO IN” क्वेरी का उपयोग कैसे करें
MongoDB: किसी विशिष्ट फ़ील्ड में “शून्य नहीं” की खोज कैसे करें

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

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