Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

MongoDBのImport・Exportコマンドを試す

OpenWeatherMapで提供されているAPIJsonをMongoDBに取り込みたいなぁと思い、勉強がてら手軽に試せるMongoImoport・Exportを使ってやってみました。

OpenWeatherMapは、APIで天気情報を提供しているサービスです。

openweathermap.org

使った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プロパティの以下の部分。

f:id:sugimomoto:20180114115227p:plain

あと、このままだとオブジェクト末尾の[,]が邪魔なのでそれを、置換で調整しました。整形済みのファイルは以下の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

f:id:sugimomoto:20180114115253p:plain

f:id:sugimomoto:20180114115257p:plain

あと、はじめMongoShellにログインして実行するのかと思ったら、exeとして提供されていました。

f:id:sugimomoto:20180114115305p:plain

なので、環境変数でPathを通していれば、上記コマンドで実行可能です。

エクスポートコマンド

Exportもわかりやすい

mongoexport — MongoDB Manual 3.6

mongoexport --db test --collection tokyo-weather --out tokyo-weather.json

一度MongoDBで生成されているので、自動生成IDが付与されていますね。

f:id:sugimomoto:20180114115328p:plain