MongoDBのImport・Exportコマンドを試す
OpenWeatherMapで提供されているAPIのJsonをMongoDBに取り込みたいなぁと思い、勉強がてら手軽に試せるMongoImoport・Exportを使ってやってみました。
OpenWeatherMapは、APIで天気情報を提供しているサービスです。
使ったAPIは[5 day weather forecast]
http://openweathermap.org/forecast5#cityid5
CityIdで東京を指定した、以下のようなURLでJsonを取得します。appidはSignupするとFreeプランのものが取得できます。
http://samples.openweathermap.org/data/2.5/forecast?id=1850147&appid=XXXXXXXXXXXXXXXXXXXXX
ほしいのはヘッダーを除外した、listプロパティの以下の部分。
あと、このままだとオブジェクト末尾の[,]が邪魔なのでそれを、置換で調整しました。整形済みのファイルは以下のGoogle Driveにアップしています。よかったらどうぞ。
https://drive.google.com/open?id=1G3SjUFw_Nb42sESf1Lrq0tbJnzGhcjXr
インポートコマンド
ドキュメントはこちら。
mongoimport — MongoDB Manual 3.6
ローカルのMongoDBに渡すのであれば、そんなに難しいものは無いです。[--db]で対象のDB [--collection]で作成するコレクション、[--file]で対象のjsonを指定します。
mongoimport --db test --collection tokyo-weather --drop --file forecast.json
あと、はじめMongoShellにログインして実行するのかと思ったら、exeとして提供されていました。
なので、環境変数でPathを通していれば、上記コマンドで実行可能です。
エクスポートコマンド
Exportもわかりやすい
mongoexport — MongoDB Manual 3.6
mongoexport --db test --collection tokyo-weather --out tokyo-weather.json
一度MongoDBで生成されているので、自動生成IDが付与されていますね。