我想通过命令导出MongoDB中的所有集合:

mongoexport -d dbname -o Mongo.json

结果是: 没有指定集合!

手册说,如果你不指定一个集合,所有的集合都将被导出。 然而,为什么这行不通呢?

http://docs.mongodb.org/manual/reference/mongoexport/#cmdoption-mongoexport--collection

我的MongoDB版本是2.0.6。


当前回答

导出所有集合:

mongodump -d database_name -o directory_to_store_dumps

要恢复它们:

mongorestore -d database_name directory_backup_where_mongodb_tobe_restored

其他回答

一些选项现在已弃用,在4.4.5版本中,我是这样做的

mongodump --archive="my-local-db" --db=my


mongorestore --archive="my-local-db" --nsFrom='my.*' --nsTo='mynew.*'

阅读更多关于恢复:https://docs.mongodb.com/database-tools/mongorestore/

之前的答案解释得很好,我添加了我的答案,以帮助您处理远程密码保护数据库

mongodump --host xx.xxx.xx.xx --port 27017 --db your_db_name --username your_user_name --password your_password --out /target/folder/path

对于转储,您的DB使用下面的CMD命令

   mongodump -d <your d name> -o <dump path>
Ex:mongodump -d qualetics -o D:\dbpackup\qualetics

我需要Windows批处理脚本版本。这个帖子很有用,所以我想我也会把我的答案贡献给它。

mongo "{YOUR SERVER}/{YOUR DATABASE}" --eval "rs.slaveOk();db.getCollectionNames()" --quiet>__collections.txt
for /f %%a in ('type __collections.txt') do @set COLLECTIONS=%%a
for %%a in (%COLLECTIONS%) do mongoexport --host {YOUR SERVER} --db {YOUR DATABASE} --collection %%a --out data\%%a.json
del __collections.txt

我在使用set /p COLLECTIONS=<__collections.txt时有一些问题,因此使用了复杂的for /f方法。

按照以下步骤从服务器创建一个mongodb,并将其导入另一台服务器/本地机器,该服务器/本地机器具有用户名和密码

1. mongodump -d dbname -o dumpname -u username -p password
2. scp -r user@remote:~/location/of/dumpname ./
3. mongorestore -d dbname dumpname/dbname/ -u username -p password