mongodb - आप एक मोंगोडीबी डेटाबेस का नाम कैसे बदलते हैं?




database (4)

आप यह कर सकते हैं:

db.copyDatabase("db_to_rename","db_renamed","localhost")
use db_to_rename
db.dropDatabase();

संपादकीय नोट: यह वही दृष्टिकोण है जो प्रश्न में ही प्रयोग किया जाता है लेकिन यह दूसरों के लिए उपयोगी साबित हुआ है।

मेरे MongoDB डेटाबेस नाम में एक टाइपो है और मैं डेटाबेस का नाम बदलना चाहता हूं।

मैं इस तरह की copy सकता हूं और हटा सकता हूं ...

db.copyDatabase('old_name', 'new_name');
use old_name
db.dropDatabase();

क्या डेटाबेस का नाम बदलने का कोई आदेश है?


उपर्युक्त प्रक्रिया धीमी है, आप नीचे विधि का उपयोग कर सकते हैं लेकिन आपको संग्रह द्वारा संग्रह को दूसरे डीबी में स्थानांतरित करने की आवश्यकता है।

use admin
db.runCommand({renameCollection: "[db_old_name].[collection_name]", to: "[db_new_name].[collection_name]"})

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

use old_db
db.getCollectionNames().forEach(function(collName) {
    db[collName].find().forEach(function(d){
        db.getSiblingDB('new_db')[collName].insert(d); 
    }) 
});

वैकल्पिक समाधान: आप अपने डीबी को डंप कर सकते हैं और इसे अलग-अलग नाम से बहाल कर सकते हैं। जैसा कि मैंने अनुभव किया है कि यह db.copyDatabase() से बहुत तेज है।

$ mongodump -d old_db_name -o mongodump/
$ mongorestore -d new_db_name mongodump/old_db_name

http://docs.mongodb.org/manual/tutorial/backup-with-mongodump/





database