यह एक क्लासिक अनुयायी-अनुयायी समस्या है और इसका कोई जवाब नहीं है.. इस लिंक को देखें:
mongo db डिजाईन और फीड्स, मुझे कहाँ एम्बेड करना चाहिए?
वास्तव में यह स्थिति एक संबंधपरक स्कीमा के लिए बहुत अच्छी तरह से उधार देती है, यदि आपके पास केवल MongoDB और SQL सर्वर ही विकल्प थे। लेकिन यह एक विशेष प्रकार की संबंधपरक समस्या है जिसमें आपका दोतरफा संबंध होता है। इसे शायद ग्राफ़ डेटाबेस द्वारा बेहतर ढंग से नियंत्रित किया जा सकता है:
http://forum.kohanaframework.org/discussion/10130/followers-and-following-database-design-like-twitter/p1
बात यह है कि, आप या तो फॉलोअर्स या फॉलोअर्स को यूजर डॉक्यूमेंट में रख सकते हैं, लेकिन दोनों को नहीं, डबल डिलीट करने की समस्या से बचने के लिए। तो अगर आपको मोंगोडीबी से चिपके रहना है, तो एक रास्ता हो सकता है .. बारंबार),
दस्तावेज़ में केवल अनुसरणकर्ताओं को रखें, क्योंकि जब मैं अपनी प्रोफ़ाइल देखता हूं, तो मुझे उन लोगों में दिलचस्पी होगी, जिनका मैं अनुसरण करता हूं.. (यही कारण है कि मैंने सबसे पहले उनका अनुसरण किया, सही?)..और फिर एक प्रश्न करें जैसे:db.Users.find({ user_id : { $in : followees })
इससे पता चलेगा कि कौन मेरा अनुसरण कर रहा है (मान लीजिए कि मेरी आईडी 'user_id' है)।
एक और कारण है कि मैं दूसरे तरीके का सुझाव नहीं देता, वह यह है कि.. कोई अधिकतम 30-40 लोगों का अनुसरण कर सकता है, इसलिए 30-40 अनुयायियों को संग्रहीत करने वाला उपयोगकर्ता दस्तावेज़ ठीक होना चाहिए, क्योंकि उपयोगकर्ता दस्तावेज़ हजारों अनुयायियों को संग्रहीत करता है! फॉलो-इन-दस्तावेज़ दृष्टिकोण के साथ, आपको लगभग समान आकार के उपयोगकर्ता दस्तावेज़ मिलते हैं..अनुवर्ती-इन-दस्तावेज़ दृष्टिकोण में, आपके पास कुछ बहुत छोटे लेकिन कुछ बहुत भारी दस्तावेज़ भी होंगे। और आपके द्वारा डाले गए अनुयायी-डेटा की मात्रा के आधार पर (यदि कोई हो, तो follower_id के अलावा), आप शायद दस्तावेज़ आकार सीमा के बारे में सावधान रहना चाहते हैं।