2012-06-13 11 views
5

सबसे पहले इस सवाल कृपया ध्यान दें निम्न दोमोंगोडीबी: दो संग्रह/डेटाबेस को एक साथ कैसे मिलाएं?</p> <p>मैं दो डेटाबेस नामित: <code>DB_A</code> और

MongoDB: Combine data from multiple collections into one..how?

Merging two collections in MongoDB

MongoDB and "joins"

मैं इस प्रकार की व्याख्या करेगा से अलग है मेरे mongodb में DB_B

प्रत्येक डेटाबेस में एक ही नाम वाला एक संग्रह होता है जिसे store कहा जाता है। {: "कुंजी 1", मूल्य: कुंजी "मान 1"}

दोनों संग्रह है कि ठीक उसी संरचना डॉक्स के बहुत पास बहुत, आदि

वास्तव में, मैं करने वाला था केवल DB_A बना सकते हैं और सभी डॉक्स सम्मिलित DB_A में। लेकिन बाद में जब मैंने अपना दूसरा दौर डालने का काम किया, तो मैंने गलत नाम टाइप करके डेटाबेस नाम के रूप में गलती की।

तो अब, प्रत्येक डेटाबेस में 32 जीबी का आकार है, मैं दो डेटाबेस मर्ज करना चाहता हूं।

एक समस्या/बाधा यह है कि अब उपलब्ध खाली स्थान केवल 15 जीबी है, इसलिए मैं copyDB_B से DB_A तक सभी चीजें नहीं कर सकता।

मुझे आश्चर्य है कि मैं move कर सकता हूं? या दो सरल डेटाबेस को मर्ज करने के लिए सबसे सरल/सर्वोत्तम/तेज़ तरीका क्या है? मैं सबसे प्रभावी तरीका पसंद करता हूं क्योंकि बस 32 जीबी को DB_A में फिर से डालने में काफी समय लगेगा।

+2

डीबीबी से पहला दस्तावेज़ लें। यदि पहले से मौजूद नहीं है तो इसे डीबी_ए में डालें। इसे डीबीबी से हटाएं। पूरा होने तक दोहराएं। –

+0

@SergioTulentsev अगर मैं सिर्फ डीबीबी को हटा देता हूं और मेरे कोड का उपयोग करके डीबी_ए में ताज़ा रूप से सब कुछ (डीबीबीआई) को दोबारा जोड़ता हूं, तो क्या यह आपके द्वारा सुझाए गए एक से धीमा होगा? – Jack

+0

यदि आपका सभी डेटा डीबीबी में है, तो आप डीबी_ए छोड़ सकते हैं और बस डीबीबी का नाम बदल सकते हैं। –

उत्तर

4

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

  1. डीबीबी से पहला दस्तावेज़ प्राप्त करें।
  2. यदि आवश्यक हो तो इसे डीबी_ए में डालें।
  3. इसे डीबीबी से हटाएं।
  4. पूरा होने तक दोहराएं।

स्रोत डीबी (डीबीबीआई) से दस्तावेज़ों को हटाने के बजाय, आप केवल बैचों में दस्तावेज़ पढ़ना चाहेंगे। यह अधिक प्रदर्शन करने वाला होना चाहिए, लेकिन कोड के लिए थोड़ा और मुश्किल होना चाहिए (विशेष रूप से यदि आपने कभी ऐसी चीज नहीं की है)।

+0

विभिन्न डेटाबेस db_a और db_b के बीच स्विच कैसे करें? मैं अजगर में एक स्क्रिप्ट लिखने की कोशिश कर रहा हूँ। कुछ मार्गदर्शन की आवश्यकता है। – rkatkam

+1

@rkatkam: बस दो अलग कनेक्शन बनाएं। –

+0

ठीक है। एक और qtn, क्या होगा यदि मेरे पास एक ही नाम के साथ दो अलग-अलग डेटाबेस हैं। मुझे कैसे आगे बढ़ना चाहिए? वर्तमान में मैं उन्हें विभिन्न मशीनों पर रख रहा हूं। मैं उन्हें मर्ज करना चाहता हूं। कोई उपाय? – rkatkam

संबंधित मुद्दे