mongodbの練習に区市町村統計表をインポートしてみよう

やあ子供たち。
さあ今日はWindows10な環境にインストールしたmongodbに、ネットからダウンロードしてきた、区市町村統計表のCSVをインポートするの実験だよ。

●食材のダウンロード
では早速やっていきましょう。「東京都 23区 面積 人口」などで検索すると、こちらのページ
がヒットするのでここからCSV形式で区市町村統計表をダウンロードします。すると、ku18rv2310.csv というファイルがダウンロードできますね。区市町村なんだね、おじさんはよく市区町村という言い方を耳にしてきた気がするんですが、どっちでもいいのかな。まそんなことはさておき、以下レシピを実践して行きましょう。

CSVをあえてExcelで開いて上書き保存。
まずダウンロードしてきたCSVを、あえてExcelで開いてですね、上書きしましょう。これをしないとうまくいかないことがあるので、面倒くさがらずにやりましょう。(改行コードが治る感じなのか、ちょっと裏はとってません。一つの事例と思ってください。)

●トップのタイトル行を削除
mongoimportは、トップ1行目はデータ要素ではなく、見出し行として認識してくれるオプションがあるので今回はそれを利用したいと思いますが、見出しの項目名が被っていると怒られるということがあります、で、この一行目の、「区市町村統計表」の後ろにカンマがたくさん続いている行ですね、このカンマがたくさん続くということは、名前のない見出し項目がたくさんあると思われて、このままだと上記理由で怒られてしまいますので、保存しなおしたCSVをメモ帳で開いて、一行目、各列のタイトルが、どれも互いに異なった文字列になるようにしておきます。簡単には、1列目は「a」、2列目は「b」、などとしておけばよいかと思います。(まだメモ帳を閉じてはなりません)

文字コードUTF-8に。
続いて保存です。ファイル>名前を付けて保存で開かれるファイル保存ダイヤログの一番下、右の方にある、文字コードを選べるプルダウンで、UTF-8を選択した上で、保存します。これも上書き保存で大丈夫です。

●mongoDB上にデータベースを作成
テストDBを作成しておきましょう。windowsコマンドラインではなく、mondodbのコマンドラインにて、use testdb とでもしておきましょう。これでtestdbというDBが作成されました。

●mongoimportを使ってインポートを完了!
最後はこの調理し終えたCSVを、mongodbにインポートします。インポートは、mongodb内のコマンドではなくて、mongoimport.exeという、プログラムを使います。Windowsコマンドラインを開いて、mongoimport.exeのあるパスに移動して、以下のようなオプションを指定して、コマンドを実行します。

mongoimport.exe --db testdb --collection tokyo_dist --drop --file C:\Users\XXX\Desktop\local_thing\_excel\ku18rv2310.csv --type csv --headerline

うまくいくと以下のような出力が表示されます。

2020-10-09T11:11:11.337+0900    connected to: mongodb://localhost/
2020-10-09T11:11:11.486+0900    dropping: testdb.tokyo_dist
2020-10-09T11:11:11.530+0900    72 document(s) imported successfully. 0 document(s) failed to import.

●登録状況を確認しよう
はい、これで、testdbという下に、tokyo_dist という名前のコレクションとして、今回の区市町村CSVがインポートできたかと思います。
ちょっと確認してみましょう。

use testdb
db.tokyo_dist.find()

と打って、CSVで見た内容が表示されれば、完璧です。
mongodbのお勉強をする上で、いろいろ試す中で、ちょっと本格的なデータがほしいなというときにですね、このように巷に落ちているCSVファイルを取り込んでみると、便利なこともあるかと思います。
チャオ!