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

कम से कम एक संबद्ध वस्तु के साथ रिकॉर्ड प्राप्त करें

आपकी समस्या यह है कि Mongoid का has_many मूल दस्तावेज़ में कुछ भी नहीं छोड़ता है इसलिए मूल दस्तावेज़ पर कोई प्रश्न नहीं है जो आपके लिए कुछ भी उपयोगी होगा। हालांकि, belongs_to :user आपके Task . में एक :user_id जोड़ देगा tasks . के लिए फ़ील्ड संग्रह। यह आपको इस तरह की भयानक चीजों के साथ छोड़ देता है:

user_ids = Task.all.distinct(:user_id)
users    = User.where(:id => user_ids).limit(10)

बेशक, अगर आपके पास embeds_many :tasks होता इसके बजाय has_many :tasks तो आप :tasks . को क्वेरी कर सकते हैं users . के अंदर संग्रह जैसा आप चाहते हैं। ओटीओएच, यह शायद अन्य चीजों को तोड़ देगा।

यदि आपको कार्यों को अलग रखने की आवश्यकता है (अर्थात एम्बेडेड नहीं) तो आप User में एक काउंटर स्थापित कर सकते हैं कार्यों की संख्या पर नज़र रखने के लिए और फिर आप इस तरह की बातें कह सकते हैं:

User.where(:num_tasks.gt => 0).limit(10)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो में विदेशी कुंजी?

  2. मोंगो - क्वेरी, एंबेडेड दस्तावेज़ डॉट नोटेशन को छोड़कर मेल नहीं खाता

  3. कस्टम समय के साथ Mongo ObjectId (_id) जनरेट कर रहा है?

  4. डिफ़ॉल्ट मान डालें जो काम नहीं कर रहा है mongodb

  5. BasicBSONList केवल संख्यात्मक कुंजियों के साथ काम कर सकता है, नहीं:[_id]