2012-01-24 129 views

回答

107

Mongo包含一个mongoexport实用程序(see docs)可以转储集合。该实用程序使用本机libmongoclient,可能是最快的方法。

mongoexport -d <database> -c <collection_name> 

也是有帮助的:

-o:将输出写入到文件,否则使用标准输出(docs

--jsonArray:生成一个有效的JSON文件,而不是每行一个JSON对象( docs

--pretty:输出格式化JSON(docs

+8

使用-d选项来指定哪些数据库使用。 – Reimund

+6

如果你想打印漂亮的JSON(例如在开发过程中检查一个集合),可以使用'--pretty'标志:'mongoexport -d mydatabase -c mycollection --pretty' –

+1

如果Mongo位于不同的主机上,这里有一个例子来自Mongo doc 'mongoexport --host mongodb1.example.net --port 37017 --username user --password“pass”--collection contacts --db marketing --out mdb1-examplenet.json' –

85

使用mongoexport/mongoimport转储/恢复的集合:

出口JSON文件

mongoexport --db <database-name> --collection <collection-name> --out output.json

导入JSON文件

mongoimport --db <database-name> --collection <collection-name> --file input.json

警告 mongoimportmongoexport不可靠保存所有丰富的BSON数据类型,因为JSON只能代表通过BSON支持的类型的子集。因此,使用这些工具导出或导入的数据可能会失去一定程度的保真度。

此外,http://bsonspec.org/

BSON被设计为快速进行编码和解码。例如, 整数存储为32位(或64位)整数,因此它们不需要 被解析为文本和从文本解析。对于小整数,这比JSON使用更多的空间,但解析速度要快得多。

除了紧凑性,BSON还添加了JSON中不可用的其他数据类型 ,特别是BinData和Date数据类型。

+0

Is there “mongoexport”/“mongoimport”往返旅程中“丰富的BSON数据”无法生存的例子? – andrewdotn

+1

它增加了对数据类型的支持,如JSON中不支持的Date和binary。另外,编码和解码速度更快http://bsonspec.org/ –

0

这里是我的命令,以供参考:

mongoexport --db AppDB --collection files --pretty --out output.json 

在Windows 7(MongoDB的3.4),一个具有地方mongod.exemongo.exe文件所在=> C:\MongoDB\Server\3.4\bin别的cmd中移动到的地方它不会工作,说它不识别mongoexport命令。

0

如果你想转储所有集合,运行这个命令:

mongodump -d {DB_NAME} -o /tmp 

它会产生json所有集合数据和bson扩展到/tmp/{DB_NAME}目录

+0

事实上它仍然是倾销bson和metadata.bson :-( – Prasad

+0

这个答案是不正确的,''mongodump'以'BSON'格式输出数据。其他答案正确地将'mongoexport'称为正确的工具。 –