हालांकि यह असंभव नहीं होगा, MongoDB इस परिदृश्य के लिए उपयुक्त नहीं होगा।
कारण यह है कि मोंगोडीबी जॉइन नहीं करता है। जब आपको एक ऐसी क्वेरी की आवश्यकता होती है जो कई दस्तावेज़ों तक फैली हो, तो आपको प्रत्येक दस्तावेज़ के लिए एक अलग क्वेरी की आवश्यकता होती है।
आपके उदाहरण में, प्रत्येक user
दस्तावेज़ में _id
. के साथ एक सरणी होगी उनके दोस्तों की। "यूजरए के सभी दोस्तों के सभी दोस्त जो यूजरबी के भी दोस्त हैं" खोजने का मतलब यह होगा कि आप:
- उपयोगकर्ता ए ढूंढें और उसके मित्र-सरणी प्राप्त करें
- उस सरणी में सभी उपयोगकर्ताओं को ढूंढें और उनके मित्र-सरणी प्राप्त करें
- इन सरणियों में उन सभी उपयोगकर्ताओं को ढूंढें जिनके मित्र-सरणी में UserB है
ये तीन प्रश्न हैं जो आपको करने हैं। इनमें से प्रत्येक प्रश्न के बीच, परिणाम सेट को एप्लिकेशन को भेजना होता है, एप्लिकेशन को एक नई क्वेरी तैयार करनी होती है और इसे डेटाबेस में वापस भेजना होता है। दूसरी क्वेरी से लौटाया गया परिणाम-सेट काफी बड़ा हो सकता है, जिसका अर्थ है कि तीसरी क्वेरी में कुछ समय लग सकता है।
tl;dr: इस काम के लिए सही उपकरण का उपयोग करें। जब आपका डेटा ग्राफ़-आधारित होता है और आप उस पर ग्राफ़-आधारित क्वेरी करना चाहते हैं, तो ग्राफ़ डेटाबेस का उपयोग करें।