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

मोंगोइड में एम्बेडेड दस्तावेज़ बनाम हैश डेटाटाइप

Mongoid डेटाबेस स्तर पर लगभग उसी तरह एम्बेडेड दस्तावेज़ और हैश विशेषताओं को संग्रहीत करता है। अपने मॉडल में अपने फ़ील्ड घोषित करने के लिए मोंगोइड के साथ काम करते समय यह सामान्य है, इसलिए यदि आपके पास नेस्टेड संरचना है तो एम्बेडेड दस्तावेज़ बनाना सामान्य है। क्योंकि MongoDB स्कीमा-रहित है, इसलिए आपको उन्हें उसी प्रकार के API में प्रस्तुत करने के लिए फ़ील्ड घोषित करने की आवश्यकता है जो ActiveRecord करता है। लेकिन कुछ उपयोग के मामलों के लिए हैश विशेषता आपको थोड़ा अधिक लचीलापन देती है। उस लचीलेपन का नकारात्मक पक्ष यह है कि आप हैश एपीआई तक सीमित हैं, इसलिए आपको ऑटो-जेनरेटेड विशेषता विधियां नहीं मिलती हैं और आप व्यावसायिक तर्क को उस तरह से समाहित नहीं कर सकते हैं जैसा कि आप आमतौर पर एक मॉडल वर्ग के भीतर कर सकते हैं।

एक उदाहरण के रूप में, मान लें कि आपके पास एक प्रश्नावली मॉडल है जिसमें आपको कई प्रश्न-उत्तर जोड़े वाले कई अनुभागों को संग्रहीत करने की आवश्यकता है। यदि सिस्टम की एक प्रमुख आवश्यकता व्यवस्थापक के लिए नए अनुभागों और प्रश्नों को सेट करने में सक्षम होना है तो आप आसानी से प्रत्येक प्रश्न के लिए स्पष्ट फ़ील्ड वाले नियमित एम्बेडेड दस्तावेज़ के रूप में उत्तरों को मॉडल करने में सक्षम नहीं होंगे। उस तरह की बात के लिए हैश अधिक समझ में आ सकता है।

मुझे नहीं पता कि आपकी विशिष्ट आवश्यकताएं क्या हैं, लेकिन एक मोटे गाइड के रूप में मैं कहूंगा कि जब आप एक एम्बेडेड दस्तावेज़ के साथ एक निश्चित स्कीमा स्टिक के साथ काम कर रहे हों, लेकिन जब आपको एक ओपन-एंडेड मॉडल की आवश्यकता हो तो हैश विशेषताओं पर विचार करें।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB, एकाधिक गिनती ($ मौजूद के साथ)

  2. sql . में ग्रुप कॉनकैट के लिए एनालॉग

  3. संग्रह में सभी कुंजियों के नाम प्राप्त करें

  4. PHP MongoDB $in/$or . का उपयोग करके कई दस्तावेज़ अपडेट करता है

  5. उबंटू से मोंगोडीबी को अनइंस्टॉल करें