इसका उत्तर है अपनी स्कीमा बदलना।
रिलेशनल डेटाबेस के उपयोग के इतिहास से दस्तावेज़ डेटाबेस विकास में आने पर आप उस जाल में पड़ गए हैं जो आपके सामने है:MongoDB एक रिलेशनल डेटाबेस नहीं है और इसे एक जैसा नहीं माना जाना चाहिए।
आपको विदेशी कुंजियों और पूरी तरह से सामान्यीकृत डेटा के बारे में सोचना बंद करना होगा और इसके बजाय, प्रत्येक दस्तावेज़ को यथासंभव स्व-निहित रखना होगा, यह सोचकर कि अपने दस्तावेज़ों में प्रासंगिक संबद्ध डेटा को सर्वोत्तम तरीके से कैसे एम्बेड किया जाए।
इसका मतलब यह नहीं है कि आप जुड़ाव भी बनाए नहीं रख सकते। इसका मतलब इस तरह की संरचना हो सकता है, जहां आप केवल आवश्यक विवरण एम्बेड करते हैं, और जरूरत पड़ने पर पूरे रिकॉर्ड के लिए क्वेरी करते हैं:
var activitySchema = new mongoose.Schema({
event: {
_id: { type: ObjectId, ref: "Event" },
name: String,
private: String
},
// ... other fields
});
अपनी एम्बेड रणनीति पर पुनर्विचार करना काफी होगा अपने प्रश्नों को सरल बनाएं और प्रश्नों की संख्या कम से कम रखें। populate
आपकी गिनती जल्दी से बढ़ा देगा, और जैसे-जैसे आपका डेटासेट बढ़ता जाएगा, यह एक समस्या बन जाएगा।