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

mongoexport -d dbname -o Mongo.json

结果是: 没有指定集合!

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

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

我的MongoDB版本是2.0.6。


当前回答

您可以使用以下命令创建zip文件。它将创建数据库{dbname}的zip文件。稍后您可以在mongo DB中导入以下zip文件。

Window filepath=C:\Users\Username\mongo 

mongodump --archive={filepath}\+{filename}.gz --gzip --db {dbname}

其他回答

首先,启动Mongo DB的路径为->

C:\Program Files\MongoDB\Server\3.2\bin,然后单击mongo .exe文件启动MongoDB服务器。

命令在Windows中导出

命令用于将Windows环境下的MongoDB数据库从“remote-server”导出到本地机器的C:/Users/Desktop/temp-文件夹下,并使用内部IP地址和端口。

C:\> mongodump --host remote_ip_address:27017 --db <db-name> -o C:/Users/Desktop/temp-folder

命令在Windows中导入

将Windows下的MongoDB数据库从本地机器目录C:/Users/Desktop/temp-folder/db-dir导入到“remote-server”

C:\> mongorestore --host=ip --port=27017 -d <db-name> C:/Users/Desktop/temp-folder/db-dir

如果您正在处理远程数据库,您可以尝试这些命令,前提是您不介意输出是BSON

1. 转储为gzip存档

mongodump --uri="mongodb://YOUR_USER_ID:YOUR_PASSWORD@YOUR_HOST_IP/YOUR_DB_NAME" --gzip --archive > YOUR_FILE_NAME

2. 还原(将数据库从一个数据库复制到另一个数据库)

mongorestore --uri="mongodb://$targetUser:$targetPwd@$targetHost/$targetDb" --nsFrom="$sourceDb.*" --nsTo="$targetDb.*" --gzip --archive

一些选项现在已弃用,在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/

对于懒人,使用mongodb,它更快:

mongodump -d <database_name> -o <directory_backup>

然后“恢复/导入”它(从directory_backup/dump/):

mongorestore -d <database_name> <directory_backup>

这样,您就不需要单独处理所有集合。只需指定数据库。

注意,我不建议使用mongodb /mongorestore存储大数据。它非常慢,一旦超过10/20GB的数据,可能需要几个小时才能恢复。

打开连接 启动服务器 命令提示符

出口:

Mongo /bin> mongoexport -d webmitta -c domain -o domain-k.json

进口:

mongoimport -d dbname -c newCollecionname——file domain-k.json

在哪里

webmitta(db name)
domain(Collection Name)
domain-k.json(output file name)