2012-01-24 135 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'稱爲正確的工具。 –