मैं किसी दस्तावेज़ में ऑब्जेक्ट आईडी की एक सूची को सरणी फ़ील्ड के रूप में संग्रहीत करने का प्रयास कर रहा हूं।मोंगो डीबी एक बड़े सरणी क्षेत्र को कैसे संभालता है?
मुझे लगता है कि मोंगो डीबी के पास एकल दस्तावेज़ों के लिए 4 एमबी आकार सीमा है। तो ऑब्जेक्टआईडी की लंबाई 12 बाइट्स पर विचार करने पर, एक दस्तावेज़ एक सरणी क्षेत्र में 300,000 से अधिक प्रविष्टियों को संभालने में सक्षम होना चाहिए। (अगर गणना बंद है तो मुझे बताएं)।
यदि सरणी में प्रविष्टियों की संख्या उस सीमा के करीब हो जाती है, तो मैं किस प्रकार का प्रदर्शन की उम्मीद कर सकता हूं? विशेष रूप से जब फ़ील्ड अनुक्रमित किया जाता है? कोई स्मृति समस्याएं?
विशिष्ट प्रश्नों नीचे दिखाई देगा: एकाधिक मानों के आधार
db.myCollection.find(
{
myObjectIds: ObjectId('47cc67093475061e3d95369d')
}
);
क्वेरी एक एकल मान के अनुसार
क्वेरी
db.myCollection.find(
{
myObjectIds: {$in: [ObjectId('47cc67093475061e3d95369d'), ...]}
}
);
से अधिक दस्तावेज़
db.myCollection.update(
{
_id: {$in: [ObjectId('56cc67093475061e3d95369d'), ...]}
},
{
$addToSet: {myObjectIds: ObjectId('69cc67093475061e3d95369d')}
}
);
एफवाईआई: 1.8 में, अधिकतम दस्तावेज़ आकार 16 एमबी तक बढ़ा दिया गया है, और यह सीमा 10gen द्वारा लगाई गई नरम सीमा है। एसओ पर किसी ने इसे सर्वश्रेष्ठ रखा: (पैराफ्रेशिंग) सीमा को हमारे स्कीमा डिज़ाइन के बारे में थोड़ा कठिन सोचने के लिए मजबूर करने के लिए रखा गया था। –
@ ब्रायन मिग्लोरिसी धन्यवाद, मैं उस पोस्ट में आया हूं और स्कीमा डिज़ाइन के बारे में समझदार होने के साथ सहमत हूं। – Jaepil