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

MongoDB में $ in और $ या एक दूसरे को बदल सकते हैं?

उनके आधिकारिक दस्तावेज़ों से ही या- बनाम-इन :

यदि आपके पास नीचे दिए गए दस्तावेज़ हैं:

[
  {
    "price": 100
  },
  {
    "price": 200
  },
  {
    "price": 300
  },
  {
    "price": 400
  },
  {
    "price": 500
  }
]

यदि आप ऐसे दस्तावेज़ प्राप्त करना चाहते हैं जहाँ price 100 . के बराबर है या 500 , क्वेरी की तरह:

db.collection.find({ price: { $in: [ 100, 500 ] } })

ऊपर की तरह करने से, क्वेरी सरल और साफ है। आप $or . का भी उपयोग कर सकते हैं $in . के बजाय लेकिन आप शॉर्टहैंड नोटेशन को क्यों खो देंगे और एक ही फ़ील्ड के अधिक ऑब्जेक्ट को बार-बार जोड़कर अपनी क्वेरी को भारी दिखाने का प्रयास करेंगे?

डिफ़ॉल्ट रूप से यदि आप तार्किक करना चाहते हैं OR दो अलग-अलग ऑपरेटरों पर आप $or . का उपयोग करेंगे , लेकिन $or . का उपयोग कब करें एक ही मैदान पर :

db.collection.find({ $or: [ { price: { $lt: 200 } }, { price: { $gt: 400 } } ] })

ऊपर की तरह जब आपके पास एक ही फ़ील्ड पर मिलान करने के लिए कई अलग-अलग शर्तें हों, तो आप इसका उपयोग करेंगे।

निष्पादित होने पर ये दो प्रश्न समान परिणाम देते हैं लेकिन जब आप $in . का उपयोग करते हैं - यदि इनपुट मान सीधे संख्याएं हैं या स्ट्रिंग या अन्य प्रकार हो सकते हैं जहां इनपुट मान बिल्कुल price के मानों से मेल खाएंगे डॉक्स में फ़ील्ड, लेकिन जब आप $or . का उपयोग करते हैं आप एक ही फ़ील्ड पर विभिन्न स्थितियों की जाँच कर रहे हैं।

परीक्षा : mongoplayground




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नोडज के साथ MongoDB क्वेरी परिणाम कैसे स्ट्रीम करें?

  2. नोएसक्यूएल बनाम एसक्यूएल जब स्केलेबिलिटी अप्रासंगिक है

  3. निष्पादन का उपयोगपॉप्युलेट ()

  4. स्प्रिंग डेटा MongoDB में प्रश्नों के लिए एक गाइड

  5. मोंगो एकत्रीकरण ढांचा, क्रमबद्ध करें और फिर समूह काम नहीं कर रहा है