MongoコレクションをJSON形式にダンプする


119

mongoコレクションをjson形式にダンプする方法はありますか?シェルまたはjavaドライバーを使用します。最高のパフォーマンスを持つものを探しています。


mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase adminあなたは指定することができhostportusernamepasswordこのデフォルトの認証データベースがあるようにadmin
マックスペン

回答:


177

Mongoには、コレクションをダンプできるmongoexportユーティリティ(ドキュメントを参照)が含まれています。このユーティリティはネイティブlibmongoclientを使用し、おそらく最速の方法です。

mongoexport -d <database> -c <collection_name>

また役立つ:

-o:出力をファイルに書き込みます。それ以外の場合は、標準出力が使用されます(docs

--jsonArray:1行に1つのjsonオブジェクトではなく、有効なjsonドキュメントを生成します(docs

--pretty:フォーマットされたjsonを出力します(docs


8
-dフラグを使用して、使用するデータベースを指定します。
Reimund 2014

8
あなたはかなり印刷JSON(例えば、開発中のコレクションを検査する)を使用する場合--pretty:フラグをmongoexport -d mydatabase -c mycollection --pretty
マックスTruxa

6
Mongoが別のホストにある場合、Mongoドキュメントの例を次に示しますmongoexport --host mongodb1.example.net --port 37017 --username user --password "pass" --collection contacts --db marketing --out mdb1-examplenet.json
What

--prettyバージョン2.6.10でなくなったようです。
icedwater

115

コレクションをダンプ/復元するには、mongoexport / mongoimportを使用します。

JSONファイルをエクスポート

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

JSONファイルをインポート

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

警告 。JSONはBSONでサポートされるタイプのサブセットのみを表すことができるため、すべてのリッチBSONデータタイプを確実に保持するわけではmongoimportありmongoexportません。その結果、これらのツールを使用してエクスポートまたはインポートされたデータは、忠実度がある程度失われる可能性があります。

また、http://bsonspec.org/

BSONは、高速にエンコードおよびデコードできるように設計されています。たとえば、整数は32ビット(または64ビット)の整数として格納されるため、テキストとの間で解析する必要はありません。これは小さな整数の場合、JSONよりも多くのスペースを使用しますが、解析ははるかに高速です。

コンパクト性に加えて、BSONはJSONで使用できないデータ型、特にBinDataおよびDateデータ型を追加します。


1
「豊富なBSONデータ」がmongoexport/ mongoimport往復で存続しない例はありますか?
andrewdotn

1
JSONでサポートされていない日付やバイナリなどのデータ型のサポートを追加します。また、bsonspec.orgの
Priyanshu Chauhan

5

参考のために私のコマンドです:

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

Windows 7(MongoDB 3.4)では、コマンドmongod.exemongo.exeファイルが存在する場所に移動する必要があります=> C:\MongoDB\Server\3.4\binさもなければ、mongoexportコマンドを認識しないと言って機能しません。


通常のjsonを、MongoDBがインポートするときに期待する愚かな「単一行のコンマなし」形式にフォーマットするフォーマッターを知っている人はいますか?
conor909

3

Mongoのドキュメントから:

mongoexportユーティリティはコレクションを取得し、JSONまたはCSVにエクスポートします。クエリのフィルタ、または出力するフィールドのリストを指定できます

詳細はこちら:http : //www.mongodb.org/display/DOCS/mongoexport


-2

すべてのコレクションをダンプする場合は、次のコマンドを実行します。

mongodump -d {DB_NAME}   -o /tmp 

ディレクトリ内のすべてのコレクションデータjsonbson拡張子を生成します/tmp/{DB_NAME}


実際のところ、それはまだbsonとmetadata.bsonをダンプしています:-(
Prasad

9
この答えは間違っています。mongodumpデータをBSONフォーマットで出力します。他の答えはmongoexport、正しいツールと正しく呼ばれています。
Christian Dechery 2018

これは私にとってはうまくいき、すべてのコレクションをbsonファイルとjsonファイルを含むtmpフォルダーに出力します。mongodump -d {dbname} -o tmp
shyamzzp
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.