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

निम्नलिखित और फ़ीड के मोंगो डीबी डिजाइन, मुझे कहां एम्बेड करना चाहिए?

सामान्य तौर पर, कई कारणों से, उपयोगकर्ता दस्तावेज़ों में निम्नलिखित/अनुवर्ती संबंधों को एम्बेड करना एक बुरा विचार है:

(1) 16एमबी की अधिकतम दस्तावेज़ आकार सीमा है, और यह प्रशंसनीय है कि एक अच्छी सदस्यता वाली साइट का एक लोकप्रिय उपयोगकर्ता सैकड़ों हजारों अनुयायियों के साथ समाप्त हो सकता है, जो अधिकतम दस्तावेज़ आकार तक पहुंच जाएगा,

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

तो, हाँ, निम्नलिखित/अनुवर्ती संबंधों को रिकॉर्ड के एक अलग संग्रह में विभाजित करना सबसे अच्छा है, प्रत्येक में दो फ़ील्ड हैं, उदाहरण के लिए, { _id :, oid :}, _id पर अनुक्रमणिका के साथ ("मैं किसका अनुसरण कर रहा हूं? " query) और oid ("मेरे पीछे कौन चल रहा है?" क्वेरी के लिए)। किसी भी व्यक्तिगत राज्य परिवर्तन को एक दस्तावेज़ जोड़ या हटाने के द्वारा तैयार किया जाता है, हालांकि यदि आप अनुयायियों की संख्या जैसी चीजें भी प्रदर्शित कर रहे हैं, तो आपको संभवतः अलग काउंटर रखना चाहिए जिसे आप किसी भी किनारे के सम्मिलन/हटाने के बाद अपडेट करते हैं।

(बेशक, यह मानता है कि आपकी व्यावसायिक आवश्यकताएं आपको निरंतरता विवरण पर कुछ लचीलेपन की अनुमति देती हैं:सामान्य तौर पर, यदि आपका डिस्प्ले कोड किसी उपयोगकर्ता को बताता है कि उसके पास 304 अनुयायी हैं और फिर उनकी गणना करने के लिए आगे बढ़ता है, तो केवल सबसे उधम मचाने वाला उपयोगकर्ता ही जांच करेगा कि अनुयायियों की गणना की गई है 304 तक मिलान करें। यदि व्यावसायिक आवश्यकताओं के लिए पूर्ण स्थिरता की आवश्यकता होती है, तो आपको या तो एक डेटाबेस की आवश्यकता होगी जो आपके लिए लेन-देन को अलग करता है, या फिर आपको सभी उपयोगकर्ता पहचान प्रदर्शित करने के भाग के रूप में गणना स्वयं करनी होगी।)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवले में एग्रीगेट का इस्तेमाल कैसे करें

  2. MongoDb . में 15 मिनट के समय अंतराल से समूह परिणाम

  3. MongoDB संग्रह में सभी दस्तावेज़ों के लिए एकल फ़ील्ड का चयन कैसे करें?

  4. मोंगोडब में एक साथ कई क्षेत्रों के आधार पर छाँटें

  5. सरणी तत्वों की तुलना करें, सबसे कम स्कोर वाले को हटा दें