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

वस्तुओं के लिए MongoDB संबंध

निर्भर करता है।

यह इस बात पर निर्भर करता है कि आप इनमें से प्रत्येक प्रकार की कितनी वस्तुओं की अपेक्षा करते हैं। क्या आप उन सभी को किसी दिए गए उपयोगकर्ता के लिए एक ही MongoDB दस्तावेज़ में फ़िट कर सकते हैं? शायद नहीं।

यह संबंधों पर निर्भर करता है - क्या उपयोगकर्ता-खाता एक-से-अनेक या अनेक-से-अनेक संबंध है? यदि यह एक से अनेक है और खातों की संख्या कम है तो आप उन्हें उपयोगकर्ता दस्तावेज़ पर IList में रखना चुन सकते हैं।

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

आप दस्तावेज़ों पर सरणी में अनुक्रमणिका कर सकते हैं। किसी दस्तावेज़ (जैसे SQL) पर एक साधारण फ़ील्ड पर एक अनुक्रमणिका के रूप में एक अनुक्रमणिका के बारे में मत सोचो। आप किसी दस्तावेज़ पर टैग संग्रह और टैग में अनुक्रमणिका का उपयोग कर सकते हैं। (देखें http://www.mongodb.org/display/DOCS/Indexes #सूचकांक-सरणी )

जब आप डेटा प्राप्त करते हैं या लिखते हैं तो आप किसी दस्तावेज़ का आंशिक रूप से पढ़ने और आंशिक रूप से लिखने का काम कर सकते हैं। (देखें http://www.mongodb.org/display /DOCS/पुनर्प्राप्त करना+a+सबसेट+की+फ़ील्ड )

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

एक और चिंता:आप टैग द्वारा योग की गणना करने का उल्लेख करते हैं। यदि आप लेखांकन-गुणवत्ता वाले लेन-देन की स्थिरता चाहते हैं, तो MongoDB आपके लिए सही विकल्प नहीं हो सकता है। "अंतिम-संगति" NoSQL डेटा स्टोर के लिए गेम का नाम है और वे आम तौर पर वित्तीय लेनदेन के लिए उपयुक्त नहीं होते हैं। उदाहरण के लिए, इससे कोई फर्क नहीं पड़ता कि एक उपयोगकर्ता ब्लॉग पोस्ट को 3 टिप्पणियों के साथ देखता है जबकि दूसरा 4 देखता है क्योंकि वे अलग-अलग प्रतिकृति प्रतियां हिट करते हैं जो अभी तक सिंक में नहीं हैं, लेकिन एक वित्तीय रिपोर्ट के लिए, उस तरह की स्थिरता मायने रखती है - आपका हो सकता है कि रिपोर्ट शामिल न हो!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. कैसे प्रोजेक्ट करें कि क्या फ़ील्ड मौजूद है

  2. शर्त के साथ समूह और गिनती

  3. $in क्वेरी के साथ mongodb में अपडेट करें?

  4. नेवला भू-स्थानिक खोज:दूरी काम नहीं कर रही

  5. क्वेरी पैरामीटर काम नहीं कर रहे हैं के रूप में नेवला GeoJSON बिंदुओं के साथ geoNear को कॉल करता है