如何重命名MongoDB数据库?

589

我的 MongoDB 数据库名中有一个错别字,我想要重命名该数据库。

我可以像这样 复制 并删除...

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

是否有重命名数据库的命令?


7
从MongoDB 4.2版本开始,即使是copyDatabase命令也被弃用了。 - Sumit Ramteke
12个回答

4

MongoshDeprecatedError:[COMMON-10003] copyDatabase()已在MongoDB 4.0中弃用,因此已被移除。


3

没错,这看起来很混乱,其他答案似乎对我没有用 - 可能是因为工具进行了更改 - 或者是因为我使用的是旧版本。我一直尝试https://dev59.com/lWox5IYBdhLWcg3wcj54#63372970 直到它对我有用。

我在这里包含我的答案 - 只是为了下次可以参考。

我使用以下命令来转储存档:

mongodump --archive --db=mongodb+srv://$HOST/$OLD_DB > backup

我使用以下命令将其还原到新的数据库中:

mongorestore --nsInclude="$OLD_DB.*" --nsFrom='$OLD_DB.*' --nsTo='$NEW_DB.*' mongodb+srv://$HOST/$NEW_DB --archive=backup

请注意nsInclude、nsFrom和nsTo参数。

这是我的mongorestore和mongodump版本:

mongodump --version
mongodump version: 100.6.0
git version: 1d46e6e7021f2f5668763dba624e34bb39208cb0
Go version: go1.17.10
   os: darwin
   arch: amd64
   compiler: gc

mongorestore --version
mongorestore version: 100.6.0
git version: 1d46e6e7021f2f5668763dba624e34bb39208cb0
Go version: go1.17.10
   os: darwin
   arch: amd64
   compiler: gc

谁知道这是否适用于不同版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接