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

मोंगोइड हैश फ़ील्ड मान सेट करना

हैश फ़ील्ड के साथ बात यह है कि यह जितना चाहें उतना गतिशील हो सकता है। इसलिए आपके डीबी स्कीमा को आपके कोड में बग के कारण अनपेक्षित फ़ील्ड के साथ प्रदूषित करने से रोकने के लिए यह कार्यक्षमता डिफ़ॉल्ट रूप से अक्षम है।

नहीं, आप अपने हैश के लिए 2-चरणीय अपडेट का उपयोग करके बिल्कुल भी अटके नहीं हैं!

[],[]=read_attribute() . के लिए शॉर्टकट हैं और write_attribute() और यदि आप Mongoid::Attributes::Dynamic शामिल नहीं करते हैं तो इसका उपयोग किया जाना चाहिए . यदि आप $set . का उपयोग करने का प्रयास करते हैं डायनामिक विशेषताओं को सक्षम किए बिना आपको नो-मेथड त्रुटि मिलेगी क्योंकि यह आपकी डायनामिक विशेषताओं को परिभाषित विशेषताओं के रूप में नहीं देखती है।

अगर आप Mongoid::गुण::गतिशील तब आप पाएंगे कि यह गतिशील विशेषताओं की कार्यक्षमता को जोड़ने के लिए आवश्यक है।

Mongoid::Attributes::Dynamic . को शामिल करके मानों को अपडेट करने के लिए आपको इन चरणों का पालन करने की आवश्यकता है:

thing = Thing.first
thing.set("info.endDate" => Time.now)
thing.reload # This will update the current variable 

अन्यथा यदि आपको आवश्यकता हो तो आप इसे आसानी से छोड़ सकते हैं और 2-चरणीय विधि द्वारा मूल्य अद्यतन कर सकते हैं

मुझे आशा है कि यह आपकी क्वेरी पर कुछ प्रकाश डालेगा।

स्रोत:

Rails mongoid डायनामिक फील्ड्स - नो मेथड एरर

Rails and Mongoid के साथ डायनामिक एट्रिब्यूट



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb PHP - दशमलव के साथ पूर्णांक

  2. मैं नेवला में एक क्वेरी कैसे निष्पादित करूं?

  3. क्या मोंगोडब स्वचालित रूप से एम्बेडेड दस्तावेज़ों के _id फ़ील्ड पर एक अनुक्रमणिका बनाता है?

  4. नेवला के साथ आईडी द्वारा एक मोंगो उप-दस्तावेज़ का चयन कैसे करें?

  5. दूरी के अनुसार क्रमबद्ध मोंगोडब में लाइनस्ट्रिंग के पास अंक खोजें