|
based on v29 (2010/12/22 更新) - オリジナル
mongoimportこのユーティリティは1行がJSON/CSV/TSV形式の文字列からなる1つのファイルを読み込み、それらのデータをMongoDBの指定したdatabase,collectionへinsertを行います。ですのでdatabaseとcollectionを指定する必要があります。 options: --help help情報を表示します -v [ --verbose ] より詳細な出力をする場合に使用します。(e.g. -vvvvv のようにvを重ねることでより出力レベルが深くなっていきます) -h [ --host ] 接続するmongoのhost名を指定します("left,right" for pairs) -d [ --db ] 使用するdb名を指定します -c [ --collection ] 使用するcollection名を指定します(some commands) -u [ --username ] usernameを指定します -p [ --password ] passwordを指定します --dbpath mongodインスタンスに接続してデータを取得する替わりに、直接データファイルからインポートを行う場合はこのオプションでデータファイルのパスを指定します。その場合は、必ずデータがロックされている状態でないといけません。つまりmongodインスタンスがこのデータファイルにアクセスしている状態でこのオプションは使ってはいけません --directoryperdb もしdbpathが指定された時、各々のdbを別々のディレクトリに分けたい場合に指定します -f [ --fields ] フィールド名をコンマ区切りで指定します。例えば -f name,age --fieldFile 1行ごとにフィールド名を指定します --ignoreBlanks もしこのオプションが指定された場合、CSV、TSV中の空フィールドは無視されます --type インポートするファイルのタイプを指定します。default: json (json,csv,tsv) --file 標準出力を使用しない場合に、インポート元のファイルパスを指定します --drop 既に同名のcollectionが存在する場合はそれをdropしてからインポートを行います --headerline csv・tsvの場合、初めの行をheaderとみなす場合はこのオプションを指定します 例: Importing Interesting TypesMongoDBはJSONデータの中の特定のフォーマットで記述されたフィールドの値の型をサポートしています。MongoDBによって拡張された[いくつか型]がこのサポート対象です.例えばJSONはdate型をサポートしていませんが、以下のようなJSONライクな記述でMongoDBへのインポート時にはdate型といして判定されます: {"somefield" : 123456, "created_at" : {"$date" : 1285679232000}}
このとき mongoimport は created_at の値をdate型として返します。 Note: 今回の$dateのような $-prefixed が正しくパースされるためには "$date" のように必ずダブルクォーテーションによって囲まれている必要があります。 mongoexportこのユーティリティはあるcollectionをJSONかCSVの形式でエクスポートします。queryによってエクスポートしたいデータをフィルタリングしたり、指定したフィールドリストからのみエクスポートすることも可能です。
もしCSVで出力を行う場合は、 --csv オプションでカンマで区切られた順番でフィールド名を指定して下さい。 options: --help help情報を表示します -v [ --verbose ] より詳細な出力をする場合に使用します(e.g. -vvvvv のようにvを重ねることでより出力レベルが深くなっていきます) -h [ --host ] 接続するmongoのhost名を指定します("left,right" for pairs) -d [ --db ] 使用するdb名を指定します -c [ --collection ] 使用するcollection名を指定します(some commands) -u [ --username ] usernameを指定します -p [ --password ] passwordを指定します --dbpath mongodインスタンスに接続してデータを取得する替わりに、直接データファイルからインポートを行う場合はこのオプションでデータファイルのパスを指定します。その場合は、必ずデータがロックされている状態でないといけません。つまりmongodインスタンスがこのデータファイルにアクセスしている状態でこのオプションは使ってはいけません --directoryperdb もしdbpathが指定された時、各々のdbを別々のディレクトリに分けたい場合に指定します -f [ --fields ] フィールド名をコンマ区切りで指定します。例えば -f name,age -q [ --query ] JSON文字列してクエリフィルターを記述します --csv JSONの替わりにCSVといてエクスポートする場合に指定します -o [ --out ] 出力ファイル名を指定します。指定されない場合は標準出力に表示されます mongodumpmongodumpはdatabase(collection)単位でバイナリ形式(bson)で出力を行います。またこれはMongoDBプロセスをロックさせる必要がなく、バックグラウンドで動作してくれます。
options: --help help情報を表示します -v [ --verbose ] より詳細な出力をする場合に使用します(e.g. -vvvvv のようにvを重ねることでより出力レベルが深くなっていきます) -h [ --host ] 接続するmongoのhost名を指定します("left,right" for pairs) -d [ --db ] 使用するdb名を指定します -c [ --collection ] 使用するcollection名を指定します(some commands) -u [ --username ] usernameを指定します -p [ --password ] passwordを指定します --dbpath mongodインスタンスに接続してデータを取得する替わりに、直接データファイルからインポートを行う場合はこのオプションでデータファイルのパスを指定します。その場合は、必ずデータがロックされている状態でないといけません。つまりmongodインスタンスがこのデータファイルにアクセスしている状態でこのオプションは使ってはいけません --directoryperdb もしdbpathが指定された時、各々のdbを別々のディレクトリに分けたい場合に指定します -o [ --out ] ダンプ先のディレクトリ名を指定します -q [ --query ] JSON文字列してクエリフィルターを記述します 例: 全データのダンピング全てのdatabaseの、全てのcollctionをダンプしたい場合は、mongodump コマンドのオプションとして --host のみを指定します: $ ./mongodump --host prod.example.com connected to: prod.example.com all dbs DATABASE: log to dump/log log.errors to dump/log/errors.bson 713 objects log.analytics to dump/log/analytics.bson 234810 objects DATABASE: blog to dump/blog blog.posts to dump/log/blog.posts.bson 59 objects DATABASE: admin to dump/admin 実行後、カレントディレクトリに"dump"という名前のフォルダができているはずです。database単位でのdumpはsystem.indexes.bsonという名前でインデックス情報も同時にバックアップされます。 さらにデフォルトポートで稼働している場合はオプション無しで実行できます: $ ./mongodump 例: Single Collectionのダンピングもし1つのcollectionのみダンプしたい場合は以下のオプションを指定します。そして1つの<collection name>.bson ファイルが生成されます。 $ ./mongodump --db blog --collection posts connected to: 127.0.0.1 DATABASE: blog to dump/blog blog.posts to dump/blog/posts.bson 59 objects
例: Single Collectionから標準出力へのダンピングv.1.7.0+ からはファイルへの出力替わりに標準出力を使用することができます。その際は --out stdout を使用します: $ ./mongodump --db blog --collection posts --out - > blogposts.bson mongodump はdatabaseのcollectionごとにファイルを作成しますので、1つのcollectionは標準出力に一度にダンプされます。 例: クエリを使用したSingle Collectionのダンピング-q オプションでJSON形式で記述したクエリが使用できます。次の例は条件:「"created_at"が"2010-12-01"から"2010-12-31"まで」を指定しています。 $ ./mongodump --db blog --collection posts
-q '{"created_at" : { "$gte" : {"$date" : 1293868800000},
"$lt" : {"$date" : 1296460800000}
}
}'
mongorestoremongorestoreによってmongodumpによる出力から復元を行うことができます。indexは復元時に自動で作成されます。mongorestoreはデータの復元時に (fire-and-forget) insert を行います(途中でエラーが出ても最後まで処理を実行します);insertが成功したかどうかはもし復元中のエラーをチェックしたい場合はサーバーのログを確認する必要があります。 options: --help help情報を表示します -v [ --verbose ] より詳細な出力をする場合に使用します(e.g. -vvvvv のようにvを重ねることでより出力レベルが深くなっていきます) -h [ --host ] 接続するmongoのhost名を指定します("left,right" for pairs) -d [ --db ] 使用するdb名を指定します -c [ --collection ] 使用するcollection名を指定します(some commands) -u [ --username ] usernameを指定します -p [ --password ] passwordを指定します --dbpath mongodインスタンスに接続してデータを取得する替わりに、直接データファイルからインポートを行う場合はこのオプションでデータファイルのパスを指定します。その場合は、必ずデータがロックされている状態でないといけません。つまりmongodインスタンスがこのデータファイルにアクセスしている状態でこのオプションは使ってはいけません --directoryperdb もしdbpathが指定された時、各々のdbを別々のディレクトリに分けたい場合に指定します --drop importする前に対象のcollectionをdropします --objcheck insertする前にオブジェクトの検証を行います --filter insertする前にフィルタリングを実行します --indexesLast indexの作成を最後のinsertを待ってから行います(元々indexの順序通りにデータが格納されていない場合に速くなります)
mongorestore --db mydb --drop --dbpath dump/mydb #エラーが出る可能性 #--dbpathを付けないで実行する mongorestore --db mydb --drop dump/mydb #成功 bsondump
bsonファイルを読み込んでjson/debug出力を行います。 usage: ./bsondump [options] [filename] options: --help help情報を表示します --type json,debugいずれかの出力形式を指定します |

IF YOU HAVE A QUESTION, POST IT TO THE USER GROUP.
These pages are fine for comments, but for questions, your best bet will always be the MongoDB User Group. blog comments powered by Disqus