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

मान या डिफ़ॉल्ट मान द्वारा Mongoid क्वेरी

ऐसे दस्तावेज़ ढूंढने के लिए जो नहीं एक विशेष कुंजी है, आप उपयोग करना चाहते हैं $exists :

तो अस्तित्व की जाँच इस तरह दिखेगी:

Model.where(:field.exists => false)
Model.where(:field => { :$exists => false })

ध्यान दें कि पहला :field.exists मोंगोडीबी को भेजे जाने से पहले फॉर्म दूसरा फॉर्म बन जाता है; मैं इसका उल्लेख इसलिए कर रहा हूं क्योंकि आप :field . का उपयोग नहीं कर पाएंगे $and . का उपयोग किए बिना क्वेरी में कहीं और या $or खंडों को संयोजित करने के लिए::field.exists विस्तार से क्वेरी में कुंजी हो सकती है हैश एक दूसरे को ओवरराइट कर रहा है। आपको यहां यह समस्या नहीं होगी लेकिन रिमाइंडर चोट नहीं पहुंचा सकता।

true खोज रहे हैं आसान है:

Model.where(:field => true)

आप दोनों में से कोई एक चाहते हैं, इसलिए उन्हें $or :

Model.where(:$or => [
  { :field.exists => false },
  { :field        => true  }
])

अगर :field वहाँ हो सकता है लेकिन एक null है value तो आप { :field => nil } . का उपयोग कर सकते हैं दस्तावेज़ों से मिलान करने के लिए जहां :field null है या वहाँ बिल्कुल नहीं:

Model.where(:$or => [
  { :field => null  },
  { :field => true  }
])
# or
Model.where(:field.in => [ null, true ]) # This is probably the one you want

{ :field => { :$type => 10 } } . भी है अगर आप वहां मौजूद चीजों की तलाश में हैं और स्पष्ट रूप से null . अब MongoDB अक्सर पूछे जाने वाले प्रश्नों की त्वरित समीक्षा के लिए एक अच्छा समय हो सकता है:




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. SQL में एक स्ट्रिंग और एक संख्या को संयोजित करें

  2. नेस्टेड ऑब्जेक्ट्स को कैसे क्वेरी करें?

  3. बेंचमार्किंग MongoDB - ड्राइविंग NoSQL प्रदर्शन

  4. सरणी डालें जहां तत्व मौजूद नहीं है और इसे अपडेट करें (कई शर्तों के साथ)

  5. MongoDB $ne एकत्रीकरण पाइपलाइन ऑपरेटर