MongoDBのドキュメント指向NoSQLデータをCData JDBC Driver経由でYellowfinを使い可視化してみる
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が付与されていますね。
Windows版MongoDBのインストール・MongoShellを通してCRUDコマンドを打ってみる
というわけで前回に引き続き、MongoDBのインストールと、一通りのCRUD操作をMongoShellから打ってみたいと思います。
インストールしたのは、MongoDB 3.6.1のWindows版です。
下の公式マニュアルを参考にすれば、そこまで難しくなくインストールすることができます。
Install MongoDB Community Edition on Windows — MongoDB Manual 3.6
続きを読むMongoDB事始め。個人的まとめ
去年から触っているMongoDBですが、
あまりまとめる時間が無かったので、冬休みの娯楽として色々とまとめてみました。
Mongo DBって?
ドキュメント指向NoSQLデータベース一つです。
MongoDBではリレーショナルデータベースとは違い、以下のようなJSON(正しくはBSON)形式のデータを格納して扱うことができるデータベースです。
IDが振られたデータをRDBで言うところのレコード(MongoDBではドキュメントと呼ぶ)でBSONを管理し、この単位で基本的な操作を実行します。
{ "_id" : ObjectId("5a4c7c92b3312b72b4d719f7"), "name" : "kazuya", "age" : 30 } { "_id" : ObjectId("5a4c7ccbb3312b72b4d719f8"), "name" : "hitomi", "loves" : [ "banana", "strawberry" ] } { "_id" : ObjectId("5a4c7cd6b3312b72b4d719f9"), "name" : "yuta", "loves" : [ "apple", "strawberry" ] }
はじめに型を定義する必要は無く、JSONの形式に則って、スキーマレスにデータのCRUD操作を行うことができます。
なので、上記ドキュメントを見ると、一つ目のドキュメントで、lovesのフィールドが存在しないことがわかるかと思います。
このように途中のドキュメントからスキーマ構造を変えたり、オブジェクトを追加して階層構造を深くしたり、ということも柔軟に実施することが可能です。
続きを読むAzure Functions でKintoneに登録された情報を元に、Twitter自動投稿するBotを作ってみた
冬休みを利用して、Azure Functionsを利用したTwitter 自動投稿Bot を作っていました。
本当はAzure FunctionsのTimer Triggerでもよかったんですが
後々外部から叩くこともあるかなぁっていうのと、Azure FunctionsだけにTimerの依存を増やすのもいやだなぁというので、Azure Schedulerで実行する方式にしました。
どんな感じに動くの?
Kintoneには以下のようにツイートするデータを管理するアプリを作っています。
あと、二重投稿防止と、ツイートが偏らないようにするための最終投稿日のフィールドを持たせています。
これを元に、私のタイムラインへ以下のように投稿されます。
続きを読む