मुझे मोंगो में अपना डेटा मॉडलिंग करने में सहायता चाहिए। मेरा अधिकांश अनुभव डीबी के संबंध में रहा है, मैं बस w/mongo शुरू कर रहा हूँ। मैं विभिन्न घटनाओं के लिए डेटा मॉडलिंग कर रहा हूँ।मोंगोडब: एकाधिक संग्रह या एक बड़ा संग्रह w/अनुक्रमणिका
- प्रत्येक 'ईवेंट' के साथ एक ही फ़ील्ड है।
- प्रत्येक 'ईवेंट' में सैकड़ों से लाखों दस्तावेज़/पंक्तियां
- घटनाएं गतिशील हैं, यानी नए आवश्यकतानुसार बनाए जाएंगे। यानी शायद एक नया 'ग्रीष्मकालीन ओलंपिक 2016' कार्यक्रम बनाएं।
संभावित रूप से सबसे महत्वपूर्ण, घटनाओं (सीआरयूडी ऑपरेशंस) से निपटने के दौरान उपयोगकर्ताओं को एक ईवेंट नाम निर्दिष्ट करना होगा।
मैं अब तक ऐसा करने के कुछ तरीके देख सकता हूं और मैं अपने डेटा मॉडल को 'गलत' तरीके से स्थापित करने में कोई बड़ी गलती नहीं करना चाहता हूं।
1) एक 'ईवेंट' संग्रह जिसमें सभी घटनाओं के लिए डेटा है। 'घटना' नाम पर सूचकांक। प्रश्न कुछ ऐसा दिखाई देगा:
db.events.find({event: 'Summer Olympics 2012');
{event: 'Summer Olympics 2012', attributes: [{name: 'joe smith', .... }
{event: 'Summer Olympics 2012', attributes: [{name: 'jane doe', .... }
{event: 'Summer Olympics 2012', attributes: [{name: 'john avery', .... }
{event: 'Summer Olympics 2012', attributes: [{name: 'ted williams', .... }
db.events.find({event: 'Summer Olympics 2013'})
{event: 'Summer Olympics 2016', attributes: [{name: 'steve smith', .... }
{event: 'Summer Olympics 2016', attributes: [{name: 'amy jones', .... }
2) सभी घटनाओं के नाम रखने के लिए प्रत्येक नए कार्यक्रम के लिए एक संग्रह, डब्ल्यू/संग्रह के साथ एक संग्रह। ईवेंट नाम पर कोई अनुक्रमणिका आवश्यक नहीं है क्योंकि प्रत्येक ईवेंट को एक अलग संग्रह में संग्रहीत किया जाता है।
// multiple collections, create new as needed
db.summer2012.find() // get summer 2012 docs
db.summer2016.find() // get summer 2016 docs
//'events' collection
db.events.find() // get all events that I would have collections for
{name: 'summer2012', title: 'Summer Olympics 2012};
{name: 'summer2016', title: 'Summer Olympics 2016};
# 1 के लिए मैं एक छोटे से चिंतित है कि एक बार मैं रिकॉर्ड है कि 'घटना' प्रति lookups के लाखों लोगों के साथ 100 घटनाओं प्रत्येक तक पहुँचने के धीमी गति से हो जाएगा, भले ही घटनाओं में से एक केवल 500 दस्तावेज़ नहीं है हूँ।
# 2 के लिए मैं हर बार एक नया संग्रह बनाकर और यहां आने के साथ मोंगो मॉडल 'स्कर्टिंग' करता हूं?
कोई टिप्पणी/विचार स्वागत है क्योंकि मुझे वास्तव में कोई जानकारी नहीं है कि कौन सा बेहतर प्रदर्शन करने जा रहा है या यदि कोई या दूसरा मुझे सड़क पर और अधिक परेशानी में डाल देगा। मैंने चारों ओर देखा है (मोंगो की साइट शामिल है) मुझे वास्तव में ठोस जवाब नहीं मिल रहा है।
ये विशेषताएं क्या हैं? लोग? तो क्या आपके पास घटनाएं x लोग हैं जो किसी ईवेंट में भाग लेते हैं? क्या वे लोग आपके सिस्टम में पंजीकृत हैं? यदि आप अभी मोंगोडीबी से शुरू कर रहे हैं, तो इसे देखें: https://code.google.com/p/morphia/wiki/QuickStart – rbento
क्षमा करें बुरा उदाहरण :(। वास्तव में इसका भू-स्थानिक डेटा। तो मेरे पास एक एक्स होगा , प्रत्येक दस्तावेज़ के लिए वाई। उपयोगकर्ता आसानी से अपने वर्तमान स्थान के लिए मानचित्र पर पिन जोड़ सकते हैं और उस स्थान के बारे में कुछ मेटाडेटा संलग्न कर सकते हैं। यानी चित्र/वीडियो, शीर्षक, मौसम इत्यादि। तो कल्पना करें कि ओलंपिक में लोगों का एक समूह नया डेटा। लोग/स्थान एक ही अंतर। प्रश्न यह है कि प्रत्येक 'घटना' में लाखों दस्तावेज़ों को प्रत्येक अलग-अलग ईवेंट अपने संग्रह में लाइव होना चाहिए, या सभी घटनाओं के दस्तावेज़ों को उसी संग्रह में फेंकना चाहिए? 10 लाख दस्तावेज़ों या 10 के साथ एक संग्रह संग्रह जिनमें प्रत्येक के पास ~ 1 मिलियन डॉक्स हैं। – lostintranslation
इसके अलावा बस मोंगो शुरू करना। मुझे लगता है कि मैनुअल का यह हिस्सा महत्वपूर्ण है: http://docs.mongodb.org/manual/applications/indexes/। यह मुझे इस छाप पर ले जाता है कि MongoDb डीबी डिजाइन, कर सकते हैं, और डीबी डिजाइन के समान होना चाहिए, और इसलिए, मैं चाहता था वर्ष पहले विकल्प के लिए pulmp, विशेष रूप से यदि आप "क्रॉस-इवेंट" quesries –