MongoDB के पुराने संस्करणों में, आप copyDB
. का उपयोग कर सकते हैं कमांड या इसकी सहायक विधि, db.copyDatabase()
डेटाबेस कॉपी करने के लिए।
मोंगोडीबी ने तब से इन्हें बहिष्कृत कर दिया है। साथ ही, संस्करण 4.2 से शुरू होकर, MongoDB ने copydb
. को हटा दिया है कमांड, और इसलिए भी db.copyDatabase()
विधि, जिसका अर्थ है कि यदि आप MongoDB 4.2 या बाद के संस्करण का उपयोग कर रहे हैं, तो भी आप उनका उपयोग नहीं कर सकते।
सौभाग्य से, MongoDB डेटाबेस को कॉपी करने का एक और तरीका है।
MongoDB डेटाबेस टूल के लिए जाँच करें
MongoDB में, आप MongoDB डेटाबेस टूल्स का उपयोग करके डेटाबेस को क्लोन कर सकते हैं। विशेष रूप से, आप mongodump
. का उपयोग कर सकते हैं और mongorestore
।
MongoDB डेटाबेस टूल्स MongoDB के साथ काम करने के लिए कमांड-लाइन उपयोगिताओं का एक सूट है।
यदि आप सुनिश्चित नहीं हैं कि आपके पास MongoDB डेटाबेस उपकरण स्थापित है या नहीं, तो जाँच करने के लिए अपने टर्मिनल या कमांड प्रॉम्प्ट में निम्न कमांड चलाकर देखें:
mongodump --version
mongorestore --version
यह विशेष रूप से mongodump
. की जांच करता है और mongorestore
संस्करण।
यदि आपके पास ये नहीं हैं, तो आप अपने सिस्टम पर MongoDB डेटाबेस टूल्स को स्थापित करने के लिए MongoDB वेबसाइट पर इंस्टॉलेशन निर्देशों का उपयोग कर सकते हैं।
डेटाबेस क्लोनिंग का उदाहरण
आपको mongodump
चलाने की जरूरत है और mongorestore
आपके सिस्टम की कमांड लाइन से (जैसे एक नया टर्मिनल या कमांड प्रॉम्प्ट विंडो)। इसे mongo
. से न चलाएं सीप।
यहां कोड का एक उदाहरण दिया गया है जो डेटाबेस को क्लोन करता है:
mongodump --archive --db=PetHotel | mongorestore --archive --nsFrom='PetHotel.*' --nsTo='PetHouse.*'
इस मामले में, हम PetHotel
. का बैकअप लेते हैं डेटाबेस, फिर इसके सभी संग्रहों को PetHouse
. नामक डेटाबेस में पुनर्स्थापित करें . दूसरे शब्दों में, हमने PetHotel
. का क्लोन बनाया है डेटाबेस PetHouse
. के रूप में ।
यह mongodump
. का उपयोग करता है डेटाबेस की बैकअप फ़ाइल बनाने के लिए, फिर mongorestore
उस डेटाबेस को किसी भिन्न नाम से पुनर्स्थापित करने के लिए। हमने डेटाबेस को मानक आउटपुट स्ट्रीम में डंप करके और mongorestore
में पाइप करके ऐसा किया। ।
यहां बताया गया है कि प्रत्येक पैरामीटर क्या करता है:
पैरामीटर | <थ>विवरण|
---|---|
--archive | एक निर्दिष्ट संग्रह फ़ाइल में आउटपुट लिखता है या, यदि संग्रह फ़ाइल अनिर्दिष्ट है, तो मानक आउटपुट (stdout ) को लिखता है ) हमारे मामले में, संग्रह फ़ाइल अनिर्दिष्ट है, इसलिए उसने मानक आउटपुट को लिखा। |
--db | डेटाबेस को बैकअप के लिए निर्दिष्ट करता है। इस मामले में, हम PetHotel . का बैकअप लेते हैं डेटाबेस। |
--nsFrom | डंप फ़ाइल में संग्रह को निर्दिष्ट करता है। तारकीय वाइल्डकार्ड (* ) सभी संग्रह निर्दिष्ट करता है। |
--nsTo | संग्रह नाम निर्दिष्ट करता है जिसे पुनर्स्थापित डेटाबेस में उपयोग किया जाना चाहिए। |
आप mongodump
. का भी उपयोग कर सकते हैं सभी डेटाबेस को डंप करने के लिए। ऐसा करने के लिए बस mongodump
चलाएं बिना किसी तर्क के। हालाँकि, जब आप ऐसा करते हैं, तो इसमें local
. शामिल नहीं होता है और config
इसके डंप में डेटाबेस।