दिलचस्प पोस्ट
एक WinForms पाठ बॉक्स बनाना आपके ब्राउज़र के पता बार की तरह व्यवहार करता है विधि निर्धारित नहीं कर सकते setLatestEventInfo ViewPager और टुकड़े – टुकड़ा की स्थिति को स्टोर करने का सही तरीका क्या है? सेलरी कार्य prefetching को समझना PHP बदलें सरणी कुंजी LINQ की सूची में आइटम ढूंढें? Java द्वारा सेलेनियम वेबड्राइवर के साथ जावा रोबोट एपीआई का उपयोग कर फ़ाइल अपलोड का एक समाधान क्या आप एक एचटीएमएल रेडियो बटन को चेकबॉक्स की तरह दिख सकते हैं? सॉफ्टवेयर डिजाइन बनाम सॉफ्टवेयर वास्तुकला मैं एक JAX-WS webservice क्लाइंट के लिए टाइमआउट कैसे सेट करूं? बूस्ट.ASIO- आधारित HTTP क्लाइंट लायब्रेरी (जैसे libcurl) एक्सेल पंक्तियों को पाठ फ़ाइलों की एक श्रृंखला में आउटपुट करना jquery: कीपप्रेस, ctrl + c (या ऐसा कुछ कॉम्बो) JQuery के साथ एक ड्रॉप-डाउन सूची के चयनित मान को बदलें मैं एक अतिप्रवाह विभाग के भीतर किसी तत्व को कैसे स्क्रॉल कर सकता हूं?

MongoDB और "मिलती है"

मुझे यकीन है कि MongoDB आधिकारिक रूप से "joins" का समर्थन नहीं करता है इसका क्या मतलब है?

क्या इसका मतलब है "हम दो संग्रह (तालिकाओं) को एक साथ नहीं जोड़ सकते।"?

मुझे लगता है कि अगर हमने संग्रह बी में संग्रह ए में other_id लिए मूल्य other_id बी में डाल दिया है, तो क्या हम दो संग्रहों को आसानी से जोड़ सकते हैं?

अगर मेरी समझ सही है, तो MongoDB दो तालिकाओं को एक साथ जोड़ सकता है, कहते हैं, जब हम एक क्वेरी चलाते हैं यह http://www.mongodb.org/display/DOCS/Schema+Design में लिखा "संदर्भ" द्वारा किया जाता है।

तो वास्तव में क्या मतलब है "शामिल"?

मुझे जवाब जानना अच्छा लगेगा क्योंकि मोंगोडीबी स्कीमा डिज़ाइन सीखना आवश्यक है http://www.mongodb.org/display/DOCS/Schema+Design

वेब के समाधान से एकत्रित समाधान "MongoDB और "मिलती है""

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

आप यहां डीबीआरएफ़ के बारे में अधिक पढ़ सकते हैं: http://docs.mongodb.org/manual/applications/database-references/

संदर्भों को सुलझाने के लिए दो संभव उपाय हैं एक को मैन्युअल रूप से करना है, जैसा आपने लगभग वर्णित किया है बस किसी दस्तावेज़ के _id को किसी अन्य दस्तावेज़ के अन्य_आईडी में सहेजें, फिर रिश्ते को हल करने के लिए अपना स्वयं का कार्य लिखें। अन्य समाधान डीबीआरएफ का इस्तेमाल करना है जैसा ऊपर दिए गए मैनुअल पृष्ठ पर बताया गया है, जो मांगोडीबी को मांग पर संबंध क्लाइंट साइड को हल करेगा। आपके द्वारा कौन सा समाधान चुनते हैं, इससे कोई फर्क नहीं पड़ता क्योंकि दोनों तरीकों से संबंध क्लाइंट साइड को हल करेंगे (नोट करें कि SQL डेटाबेस सर्वर-साइड पर शामिल हो रहा है)।

मोगो 3.2 के अनुसार इस प्रश्न का उत्तर अब सही नहीं है। एकत्रीकरण पाइपलाइन में जोड़ा गया नया $ लुकअप ऑपरेटर बाएं बाहरी जुड़ने के लिए अनिवार्य रूप से समान है:

https://docs.mongodb.org/master/reference/operator/aggregation/lookup/#pipe._S_lookup

डॉक्स से:

 { $lookup: { from: <collection to join>, localField: <field from the input documents>, foreignField: <field from the documents of the "from" collection>, as: <output array field> } } 

डेटाबेस जोड़ना नहीं करता – या दस्तावेजों के बीच स्वचालित "लिंक"। हालांकि आप इसे अपने आप ग्राहक पक्ष कर सकते हैं यदि आपको 2 करने की ज़रूरत है, तो ठीक है, लेकिन अगर आपको 2000 करना था, तो ग्राहक / सर्वर कन्वर्जन्स की संख्या ऑपरेशन को धीमा कर देगी।

MongoDB में एक सामान्य पैटर्न एम्बेडिंग है। रिलेशनल में जब सामान्य बातें कुछ हिस्सों में टूट जाती हैं अक्सर इन टुकड़ों में एक एकल दस्तावेज़ होने का अंत होता है, इसलिए किसी भी तरह से जुड़ने की ज़रूरत नहीं है। लेकिन जब एक की आवश्यकता होती है, तो यह एक ग्राहक-पक्ष देता है

क्लासिक ऑर्डर, ऑर्डर- LINEITEM उदाहरण पर विचार करें एक ऑर्डर और 8 लाइन आइटम रिलेशनल में 9 पंक्तियाँ हैं; मोंगोडीबी में हम आमतौर पर केवल एक बीएसओएन दस्तावेज़ के रूप में मॉडल करेंगे, जो एम्बेडेड लाइन आइटमों की एक सरणी के साथ एक आदेश है। तो उस मामले में, जुड़ने की समस्या उत्पन्न नहीं होती है। हालांकि इस क्रम में एक ग्राहक होगा जो संभवत: एक अलग संग्रह है- क्लाइंट ऑर्डर दस्तावेज़ से cust_id को पढ़ सकता है, और उसके बाद अलग-अलग आवश्यकता के अनुसार इसे प्राप्त कर सकता है।

कुछ वीडियो और स्कीमा डिजाइन वार्ता के लिए स्लाइड्स हैं जो मोंगॉडब वेब साइट पर आधारित है I belive।

मोंगो डीबी में एक क्वेरी में शामिल होने के एक प्रकार, आईडी के लिए एक संग्रह से पूछता है, मैच (एक सूची) में आईडी डालता है, और इसमें $ ($) के साथ अन्य (या समान) संग्रह का इस्तेमाल करते हैं: idlist

 u = db.friends.find({"friends": something }).toArray() idlist= [] u.forEach(function(myDoc) { idlist.push(myDoc.id ); } ) db.family.find({"id": {$in : idlist} } ) 

पहला उदाहरण जिसे आप लिंक से पता चलता है कि कैसे MongoDB संदर्भ बहुत आलसी लोड हो रहा है जैसे कि किसी शामिल में नहीं। वहाँ एक क्वेरी नहीं है जो दोनों संग्रह पर हो रहा है, बल्कि आप एक क्वेरी करते हैं और फिर आप संदर्भ द्वारा किसी अन्य संग्रह से आइटम्स को खोजते हैं।

तथ्य यह है कि मुंगोडीबी संबंधपरक नहीं है, कुछ लोगों को इसे बेकार पर विचार करने के लिए प्रेरित किया है। मुझे लगता है कि आपको पता होना चाहिए कि डीबी डिजाइन करने से पहले आप क्या कर रहे हैं। यदि आप noSQL डीबी जैसे मोंगोडीबी का उपयोग करना चुनते हैं, तो आप बेहतर स्कीमा को लागू कर सकते हैं। यह आपके संग्रह को बनायेगा – अधिक या कम – एसक्यूएल डेटाबेस में तालिकाओं के समान। इसके अलावा, कार्यक्षमता के कारणों के लिए जब तक आवश्यक न हो, denormalization (एम्बेडिंग) से बचें।

यदि आप अपना स्वयं का डाटा एसक्यूएल डेटाबेस डिजाइन करना चाहते हैं, तो मैं फ़ायरबेज दस्तावेज़ीकरण पर एक नजर रखना चाहता हूं। यदि आप समझते हैं कि वे अपनी सेवा के लिए डेटा कैसे व्यवस्थित करते हैं, तो आप आसानी से अपने लिए इसी प्रकार के डिज़ाइन को डिज़ाइन कर सकते हैं।

जैसा कि अन्य लोगों ने बताया है, आपको उल्का (एक जावास्क्रिप्ट रूपरेखा) को छोड़कर क्लाइंट-साइड में शामिल होना होगा, आप इस पैकेज के साथ अपने सर्वर-साइड में शामिल कर सकते हैं (मुझे अन्य ढांचे के बारे में नहीं पता है जो आपको करने में सक्षम बनाता है इसलिए)। हालांकि, मेरा सुझाव है कि आप इस पसंद के साथ जाने का निर्णय लेने से पहले इस लेख को पढ़ लें।

28.04.17 को संपादित करें: हाल ही में फायरबेज ने नो एसक्यूएल डेटाबेस को डिजाइन करने पर इस उत्कृष्ट श्रृंखला को प्रकाशित किया। उन्होंने एक एपिसोड में शामिल होने से बचने के कारणों को भी उजागर किया और अपने डेटाबेस को denormalizing द्वारा इस तरह के परिदृश्यों को कैसे प्राप्त किया।

मोंगोज का उपयोग करने पर विचार करें? यह आपको मौंगो डेटा पर शामिल होने की क्षमता देता है

अगर आप मोंगोज़ का उपयोग करते हैं, तो आप केवल इसका उपयोग कर सकते हैं (मान लें कि आप उप-दस्तावेजों और आबादी का उपयोग कर रहे हैं):

 Profile.findById profileId .select 'friends' .exec (err, profile) -> if err or not profile handleError err, profile, res else Status.find { profile: { $in: profile.friends } }, (err, statuses) -> if err handleErr err, statuses, res else res.json createJSON statuses 

यह profileId को प्राप्त करता है जो Profile ( Profile ) में से एक के हैं। मित्र अन्य Profiles के संदर्भों की सरणी हैं परिभाषित friends साथ Profile स्कीमा:

 schema = new mongoose.Schema # ... friends: [ type: mongoose.Schema.Types.ObjectId ref: 'Profile' unique: true index: true ] 

आप MongoDB addons का उपयोग कर सकते हैं, यह गुनगुना है, और शामिल होने, मर्ज करने और एक क्वेरी बिल्डर बनाने की कोशिश इसे करने की कोशिश: https://github.com/petersirka/mongodb-addons

अपने आप को MongoDB के एक उपयोगकर्ता होने के नाते, मुझे संबंधित संग्रहों से डेटा प्राप्त करना पड़ता था, बल्कि अक्सर जब लोग नोएसक्यूएल डाटाबेस में रिलेशनल डेटाबेस के डेटा को संग्रहीत करते हैं, तो "जॉइनिंग" आवश्यक हो जाता है। यहां एक लाइब्रेरी है कि मैं अपने दोस्त के साथ-साथ अजगर में शामिल होने के लिए मोंगो का प्रदर्शन करता हूं –

https://pypi.python.org/pypi/mongojoin/1.0.0

कोड बहुत जटिल नहीं है और कोशिश के लायक भी नहीं है!

मैं उसी के लिए खोज के बहुत से पदों पर आया हूं – "मोनोग्रोब जॉइन" और विकल्प या समकक्ष। तो मेरा जवाब कई अन्य लोगों की मदद करेगा जो मेरी तरह हैं यह वह उत्तर है जिसे मैं तलाश रहा हूं।

मैं एक्सप्रेशर फ्रेमवर्क के साथ मोंगोज का उपयोग कर रहा हूं। जुड़ने के स्थान पर Population एक कार्यक्षमता है।

जैसा कि मोंगोस डॉक्स में उल्लिखित है।

मोंगोडीबी में कोई भी शामिल नहीं है लेकिन कभी-कभी हम अन्य संग्रहों में दस्तावेजों के संदर्भ भी चाहते हैं। यह वह जगह है जहां जनसंख्या आता है

यह स्टैक ओव्हरफ्लो जवाब इसका उपयोग करने के तरीके पर एक सरल उदाहरण दिखाता है