ドキュメントをインポートする(mongoimport)

外部ファイルからドキュメントをまとめてインポートしてみます。

* はじめに
* mongoimport


はじめに

mongoimportという機能を使うと、データをまとめて追加することができます。
コツ、というか約束事は、
* JSONオブジェクトを1行に記述し、それを改行コードで区切ったファイルを準備する
* 独立したプログラムなので、Mongoシェルではなくターミナルやコマンドプロンプトから起動する
の2つです。


mongoimport

用意するのは、次のようなファイルです。

{ "name" : "えがわ", product : [ { name : "水羊かん" } ] }
{ "name" : "森八大名閣", product : [ { name : "御挟餅" }, { name : "越の雪中梅" } ] }
{ "name" : "村中甘泉堂", product : [ { name : "羽二重餅" } ] }

行の最後にカンマが入っていてはいけません。あくまで改行区切りのJSONオブジェクトです。

で、次のようなコマンドを入力します。

$ mongoimport --db fukui --collection foods --file foods
2016-04-11T00:00:00.000+0900    connected to: localhost
2016-04-11T00:00:00.000+0900    imported 3 documents

オプションで、対象のデータベース、対象のコレクション、対象のファイルを指定します。

結果を確認してみます。

$ mongo
MongoDB shell version: 3.2.4
connecting to: test
> use fukui
switched to db fukui
> db.foods.find()
{ "_id" : ObjectId("570b582d501ef26c7925cd6f"), "name" : "えがわ", "product" : [ { "name" : "水羊かん" } ] }
{ "_id" : ObjectId("570b582d501ef26c7925cd70"), "name" : "村中甘泉堂", "product" : [ { "name" : "羽二重餅" } ] }
{ "_id" : ObjectId("570b582d501ef26c7925cd71"), "name" : "森八大名閣", "product" : [ { "name" : "御挟餅" }, { "name" : "越の雪中梅" } ] }