mongoimport を使用します データをMongoDBデータベースにインポートするユーティリティ。
MongoDBはmongoimport
を提供します JSON、CSV、またはTSVファイルをMongoDBデータベースにインポートするために使用できるユーティリティ。
mongoimport
binディレクトリにあります(例:
/ mongodb / bin
またはあなたがそれをインストールしたところならどこでも)。
データをインポートするには、新しいターミナル/コマンドプロンプトウィンドウを開き、mongoimport
と入力します。 その後に、データベース名、コレクション名、ソースファイル名などのパラメータが続きます。
mongoimport を実行できない場合 、 mongo を終了したことを確認してください ユーティリティ、または mongoexport を実行する前に新しいターミナル/コマンドプロンプトウィンドウを開きました 、別のユーティリティであるため。
JSONファイルのインポート
mongoimport
を実行する例を次に示します。 JSONファイルをインポートします。
以前に mongoexport を使用したことを覚えているかもしれません。 アーティスト をエクスポートするには JSONファイルへのコレクション。
後で artists を削除しました コレクション全体。
次に、そのコレクションをデータベースにインポートし直します。
mongoimport --db music --file /data/dump/music/artists.json
結果のメッセージ:
2016-07-12T13:34:04.904+0700 no collection specified 2016-07-12T13:34:04.905+0700 using filename 'artists' as collection 2016-07-12T13:34:04.911+0700 connected to: localhost 2016-07-12T13:34:04.968+0700 imported 13 documents
コレクション名を指定しない場合、コレクションはファイルの名前(拡張子を差し引いたもの)に基づいて作成されます。
それでは、 mongo に戻りましょう。 ターミナル/コマンドプロンプトウィンドウで、データベース内のコレクションのリストを取得します:
show collections
結果:
artists musicians producers
次に、復活したコレクションを照会します。
db.artists.find()
結果:
{ "_id" : 1, "artistname" : "AC/DC" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" } { "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : ObjectId("5781f85d48ef8c6b3ffb0150"), "artistname" : "Deep Purple", "albums" : [ { "album" : "Machine Head", "year" : 1972, "genre" : "Rock" }, { "album" : "Stormbringer", "year" : 1974, "genre" : "Rock" } ] } { "_id" : ObjectId("578214f048ef8c6b3ffb0159"), "artistname" : "Miles Davis", "albums" : [ { "album" : "Kind of Blue", "year" : 1959, "genre" : "Jazz" }, { "album" : "Bitches Brew", "year" : 1970, "genre" : "Jazz" } ] } { "_id" : ObjectId("578217c248ef8c6b3ffb015a"), "artistname" : "Robben Ford", "albums" : [ { "album" : "Bringing it Back Home", "year" : 2013, "genre" : "Blues" }, { "album" : "Talk to Your Daughter", "year" : 1988, "genre" : "Blues" } ] } { "_id" : 2, "artistname" : "Prince", "address" : { "street" : "Audubon Road", "city" : "Chanhassen", "state" : "Minnesota", "country" : "United States" } } { "_id" : 4, "artistname" : "Rush" } { "_id" : 3, "artistname" : "Moby", "albums" : [ { "album" : "Play", "year" : 1999, "genre" : "Electronica" }, { "album" : "Long Ambients 1: Calm. Sleep.", "year" : 2016, "genre" : "Ambient" } ] } { "_id" : ObjectId("578217c248ef8c6b3ffb015b"), "artistname" : "Snoop Dogg", "albums" : [ { "album" : "Tha Doggfather", "year" : 1996, "genre" : "Rap" }, { "album" : "Reincarnated", "year" : 2013, "genre" : "Reggae" } ] }
コレクション名を指定
--collection
を使用できます データを入れるコレクションの名前を指定する引数。
別のファイルをインポートしましょう。ただし、今回はコレクション名を指定します。
mongoimport --db music --collection jazz --file /data/dump/music/miles_davis.json
結果のメッセージ:
2016-07-12T14:09:01.793+0700 connected to: localhost 2016-07-12T14:09:01.849+0700 imported 1 document
ここで、 mongo に戻ります。 コレクションのリストを確認してください:
show collections
結果のメッセージ:
artists jazz musicians producers
そして最後に、 jazz にクエリを実行します コレクション:
db.jazz.find().pretty()
結果のメッセージ:
{ "_id" : ObjectId("578214f048ef8c6b3ffb0159"), "artistname" : "Miles Davis", "albums" : [ { "album" : "Kind of Blue", "year" : 1959, "genre" : "Jazz" }, { "album" : "Bitches Brew", "year" : 1970, "genre" : "Jazz" } ] }
CSVファイルのインポート
--type csv
を使用してCSVファイルをインポートできます 。
CSVファイルにヘッダー行がある場合は、--headerline
を使用します
mongoimport
に伝える 最初の行を使用して、結果のドキュメントのフィールドの名前を決定します。
CSVファイルにヘッダー行がない場合は、--fields
を使用します フィールド名を設定するパラメータ。
ヘッダー行あり
ヘッダー行のあるドキュメントをインポートする例を次に示します。
CSVファイルの内容:
_id,albumname,artistname 1,Killers,"Iron Maiden" 2,Powerslave,"Iron Maiden" 12,"Somewhere in Time","Iron Maiden" 3,"Surfing with the Alien","Joe Satriani" 10,"Flying in a Blue Dream","Joe Satriani" 11,"Black Swans and Wormhole Wizards","Joe Satriani" 6,"Out of the Loop","Mr Percival" 7,"Suck on This",Primus 8,"Pork Soda",Primus 9,"Sailing the Seas of Cheese",Primus
ファイルをインポートします:
mongoimport --db music --collection catalog --type csv --headerline --file /data/dump/music/catalog.csv
コレクションをクエリする:
> db.catalog.find() { "_id" : 2, "albumname" : "Powerslave", "artistname" : "Iron Maiden" } { "_id" : 1, "albumname" : "Killers", "artistname" : "Iron Maiden" } { "_id" : 3, "albumname" : "Surfing with the Alien", "artistname" : "Joe Satriani" } { "_id" : 12, "albumname" : "Somewhere in Time", "artistname" : "Iron Maiden" } { "_id" : 10, "albumname" : "Flying in a Blue Dream", "artistname" : "Joe Satriani" } { "_id" : 6, "albumname" : "Out of the Loop", "artistname" : "Mr Percival" } { "_id" : 7, "albumname" : "Suck on This", "artistname" : "Primus" } { "_id" : 8, "albumname" : "Pork Soda", "artistname" : "Primus" } { "_id" : 11, "albumname" : "Black Swans and Wormhole Wizards", "artistname" : "Joe Satriani" } { "_id" : 9, "albumname" : "Sailing the Seas of Cheese", "artistname" : "Primus" }
ヘッダー行なし
別のCSVファイルがありますが、これにはヘッダー行がありません:
Mutt Lange, 1948 John Petrucci, 1967 DJ Shadow, 1972 George Clinton, 1941
次に、それをインポートして、使用するフィールド名を指定します。
mongoimport --db music --collection producers --type csv --fields name,born --file /data/dump/music/producers.csv
コレクションをクエリする:
> db.producers.find() { "_id" : 1, "name" : "Bob Rock" } { "_id" : ObjectId("5784a3a5dfad478c015f6b72"), "name" : "John Petrucci", "born" : 1967 } { "_id" : ObjectId("5784a3a5dfad478c015f6b73"), "name" : "Mutt Lange", "born" : 1948 } { "_id" : ObjectId("5784a3a5dfad478c015f6b74"), "name" : "George Clinton", "born" : 1941 } { "_id" : ObjectId("5784a3a5dfad478c015f6b75"), "name" : "DJ Shadow", "born" : 1972 }
ObjectId フィールドは自動的に作成され、入力されています。
また、インポートを実行する前に、このコレクションにはすでに1つのドキュメントがあります: {"_id":1、 "name": "Bob Rock"} 。したがって、インポートが単に追加されたことがわかります。 コレクションに(コレクションとそのすべてのコンテンツを置き換えるのではなく)
同じ方法を使用してTSVファイルをインポートできます。 --type tsv
を使用するだけです 。