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


119

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


mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase adminあなたは指定することができhost、port、username、passwordこのデフォルトの認証データベースがあるように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.exeをmongo.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 

ディレクトリ内のすべてのコレクションデータjsonとbson拡張子を生成します/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.