एक परियोजना में कितनी गतिविधियाँ हो सकती हैं? यदि कोई सीमा नहीं है तो आप गतिविधियों के लिए रूट स्तर संग्रह बनाने से बेहतर हैं। MongoDB में, अधिकतम BSON दस्तावेज़ का आकार 16 MB है . यह कि आप सभी परियोजनाओं और उनकी गतिविधियों को एक दस्तावेज़ (संगठन दस्तावेज़) में संग्रहीत करने में सक्षम नहीं हो सकते हैं।
मैं 3 संग्रह तैयार करूंगा - संगठन, परियोजनाएं और गतिविधियां।
- प्रत्येक संगठन के पास संगठनों में एक दस्तावेज़ होना चाहिए संग्रह जैसा कि आपके पास Firestore में है।
- प्रत्येक प्रोजेक्ट में प्रोजेक्ट . में एक दस्तावेज़ होना चाहिए एक फ़ील्ड "organizationID" युक्त संग्रह ताकि आप किसी विशिष्ट संगठन की परियोजनाओं को उनकी ID का उपयोग करके क्वेरी कर सकें। यह आपके प्रोजेक्ट उप-संग्रह में एक दस्तावेज़ के बराबर है। प्रत्येक प्रोजेक्ट की अपनी विशिष्ट आईडी भी होनी चाहिए।
- प्रत्येक गतिविधि में गतिविधियों . में एक दस्तावेज़ होना चाहिए "प्रोजेक्ट आईडी" फ़ील्ड युक्त संग्रह ताकि किसी विशिष्ट प्रोजेक्ट की गतिविधियों को पुनर्प्राप्त किया जा सके।
मैंने वे अतिरिक्त organizationID
जोड़ दिए हैं , projectID
फ़ील्ड भले ही आपके पास _id
हो यदि आप साथ-साथ आसान प्रश्नों के लिए फायरस्टोर दस्तावेज़ आईडी रखना चाहते हैं।
आपको 16 एमबी के बारे में चिंता करने की ज़रूरत नहीं है दस्तावेज़ का आकार इस तरह से सीमित है और जब तक आपके पास सही आईडी हैं, तब तक प्रोजेक्ट और गतिविधियों दोनों को क्वेरी करना आसान हो जाएगा।
एक निश्चित परियोजना की गतिविधियों की पूछताछ:
await db.collection("activities").find({projectID: "myProjectID"}).toArray()
इसके बाद यह आप पर निर्भर करता है कि आप अनुमानों, एकत्रीकरण आदि के साथ प्रश्नों को कैसे लिखना चाहते हैं।