बढ़िया सवाल। मुझे पहले थोड़ा सा रूपरेखा दें कि N:N संबंध कैसे काम करता है, फिर मैं आपके प्रत्येक बुलेट बिंदु पर विस्तार से जाऊँगा।
N:N MySQL में आम तौर पर आपकी पिवट टेबल आपके उपयोगकर्ता और रुचियों (user_interests तालिका) के बीच संबद्ध होती है। मोंगो में आप इसे थोड़ा अलग तरीके से करते हैं। आपके पास अभी भी एक उपयोगकर्ता और रुचि संग्रह है, हालांकि अब इसके बजाय, आप एक उपयोगकर्ता के लिए रुचियों के तहत चाबियों की एक सूची संग्रहीत करते हैं। तो कुछ इस तरह:
User Collection {
"name":"Josh",
"user":"jsmith",
"interests":[
{
"_id":12345,
"rating":"like"
},
{..}..
]
}
अपनी रुचियों को एक सूची में संग्रहीत करके, जो आपकी रुचि तालिका पर बंद है, आप अपनी आवश्यकता के अनुसार प्रत्येक कार्य कर सकते हैं। यदि आप कोई प्रश्न करना चाहते हैं, तो आप उस आईडी के आधार पर उसका समाधान करना चाहेंगे जो रुचि तालिका में है तो $संशोधक में ।
अब आपकी रुचियों के संग्रह के लिए मैं निम्नलिखित कार्य करूँगा:
User Interest {
"_id":objectId
"label":"Swimming",
"count":intValue
}
उपयोगकर्ता दस्तावेज़ में रुचि जोड़ते समय, गणना चर तब आपकी रेटिंग की परिभाषा पर निर्भर करेगा। यदि आप अपनी रेटिंग को एक अलग क्षेत्र (या तर्क में) में संग्रहीत कर रहे हैं, तो आपने उन्हें जो मान दिया है, वह वही होगा जो आप संबंधित हैं और फिर ब्याज में int मान से संबंधित हैं। आईई:उपयोगकर्ता इसे मेह (जिसका मान 1 है) रेट करता है तो आप गिनती मूल्य में 1 जोड़ देंगे।
उम्मीद है कि यह मददगार है और कम से कम कुछ अन्य विचारों को लाया है कि इसे कैसे तैयार किया जाए!
शुभकामनाएँ, याद रखें कि मोंगो बहुत बढ़िया है।