Mongoコレクションをjson形式にダンプする方法はありますか?シェル上またはJavaドライバーを使用します。最高のパフォーマンスを備えたドライバーを探しています。
Mongoには、コレクションをダンプできるmongoexportユーティリティ (ドキュメントを参照) が含まれています。このユーティリティはネイティブのlibmongoclientを使用し、おそらく最速の方法です。
mongoexport -d <database> -c <collection_name>
また役立つ:
-o
:出力をファイルに書き込みます。それ以外の場合は標準出力が使用されます( docs )
--jsonArray
:1行に1つのjsonオブジェクトではなく、有効なjsonドキュメントを生成します( docs )
--pretty
:フォーマットされたJSONを出力します( docs )
Mongoexport/mongoimportを使用して、コレクションをダンプ/復元します。
JSONファイルのエクスポート:
mongoexport --db <database-name> --collection <collection-name> --out output.json
JSONファイルのインポート:
mongoimport --db <database-name> --collection <collection-name> --file input.json
警告
mongoimport
およびmongoexport
は、BSONがサポートする型のサブセットのみをJSONで表すことができるため、すべてのリッチBSONデータ型を確実に保持するわけではありません。その結果、これらのツールでエクスポートまたはインポートされたデータは、ある程度の忠実度を失う可能性があります。
BSONは、エンコードおよびデコードが高速になるように設計されています。たとえば、整数は32(または64)ビット整数として格納されるため、テキストとの間で解析する必要はありません。これは、小さな整数に対してJSONよりも多くのスペースを使用しますが、解析ははるかに高速です。
コンパクト性に加えて、BSONはJSONで使用できないデータ型、特にBinDataおよびDateデータ型を追加します。
参照用のmineコマンドを次に示します。
mongoexport --db AppDB --collection files --pretty --out output.json
Windows 7(MongoDB 3.4)では、mongod.exe
およびmongo.exe
ファイルが存在する場所にcmdを移動する必要があります=> C:\MongoDB\Server\3.4\bin
それ以外の場合、mongoexport
を認識しないとは機能しませんコマンド。
Mongoドキュメントから:
Mongoexportユーティリティはコレクションを取得し、JSONまたはCSVにエクスポートします。クエリのフィルター、または出力するフィールドのリストを指定できます
すべてのコレクションをダンプする場合は、次のコマンドを実行します。
mongodump -d {DB_NAME} -o /tmp
json
およびbson
拡張のすべてのコレクションデータを/tmp/{DB_NAME}
ディレクトリに生成します