2011-10-17 5 views
7

का उपयोग कर मोंगो क्या हर उपयोगकर्ता के लिए उप-चयन (लगभग 15) का उपयोग करने में कोई समझ है? उपयोगकर्ताओं की राशि लगभग 10k है। उप-चयन में रिकॉर्ड की मात्रा 2 एम तक पहुंच सकती है। या शायद मुझे आम बड़े संग्रह का उपयोग करना चाहिए? आपके उत्तरों के लिए धन्यवाद।सबकोलेक्शन

उत्तर

8

एंबेडेड संग्रह डेटाबेस को सरल बनाते हैं (वे संग्रह की संख्या कम करते हैं) और डेटाबेस को तेज़ी से काम करते हैं। मैं आम तौर पर सब कुछ एम्बेड करने की कोशिश कर रहा हूं और केवल तभी मैं अलग संग्रह नहीं बना सकता हूं। यदि आपका एम्बेडेड संग्रह बड़ा हो जाएगा आप लोड करने के दौरान उपयोगकर्ता से बाहर कर सकते हैं:

db.posts.find({ tags : 'tennis' }, { comments : 0 }); 

क्वेरी से ऊपर टिप्पणियों के बिना पदों लोड होगा। Documentation

लेकिन एम्बेडेड संग्रह कुछ जटिलता भी जोड़ते हैं। उदाहरण के लिए आप mongodb आपके लिए एम्बेडेड संग्रह को सॉर्ट नहीं कर सकते हैं। आदेश हमेशा डिफ़ॉल्ट। लेकिन आप इसे क्लाइंट साइड पर कर सकते हैं। यदि आप के लिए डिफ़ॉल्ट आदेश काम करते हैं, आप $ टुकड़ा के माध्यम से पेज नेस्टेड संग्रह कर सकते हैं:

db.posts.find({}, {comments:{$slice: [20, 10]}}) // skip 20, limit 10 

इसके अलावा स्कीमा डिजाइन के बारे में इस doc में एक बार देख ले।

तो जब भी संभव हो तो एम्बेड करने के लिए + 1।