データベースのPaaSというと、選択肢はここに書ききれないくらい多いと思う。また、Node-REDでノードが用意されているデータベースというのも1ダースくらいはある。(こちらの記事を参照→Node-REDで扱えるDBノード総まとめ - Qiita)
ここではHerokuのアドオンでmLab MongoDBを使う方法を紹介する。mLab MongoDBはMongoDBのPaaSである。ちなみにHerokuボタンでNode-REDをデプロイすると、もれなくmLab MongoDBのアドオンがついてくる。また、Node-REDにはMongoDBのノードが用意されている。(これについては別記事 Node-REDでMongoDB - 滴了庵日録 を参照。)
MongoDBとは
- いわゆるNoSQLのひとつ。つまりRDBではない。
- スキーマレスである。つまり好きなときに動的にフィールドを追加できる。
- つまり正規化もなにもあったもんじゃない。
- データはJSON形式で保存される。(正確にはBSON=バイナリ型JSON)
- RDB用語との対応は下表のようなかんじ。
RDB | MongDB |
---|---|
テーブル | コレクション |
レコード | ドキュメント |
カラム | フィールド |
手順
※ HerokuボタンでNode-REDをデプロイした場合、7までの手順は不要
- Herokuにログインする (アプリはすでにあるものとする)
- Dashboard画面右上のメニューの「Elements」をクリック
- Heroku Elementsで「MongoDB」を検索
- 「Add-ons」の mLab MongDB を選択
- 「install mLab MongoDB」をクリック
- 「App to provision to」で自分のアプリ名を検索して選択
- 「Provision add-on」でアプリに追加する
- アプリの「Resources」の「Add-ons」に「mLab MongoDB」が追加されている
- 「mLab MongoDB」を開くと詳細が表示される
- データベース名、サーバーURI、ユーザー名を確認する
※ デフォルトのユーザーはデータベース名と同名である - 画面右上の「user: ユーザー名」からユーザー設定画面を開き、パスワードを設定する
- または、「Users」の「Add database user」で適宜ユーザー名/パスワードを設定する
※ なぜかデフォルトのユーザーではNode-REDからアクセスできなかった (要調査) - 「Collections」の「Add collection」で適宜コレクションを作成する
要メモ事項
- データベース名: heroku_mg??????
- サーバーURI: mongodb://ds??????.mlab.com:ポート番号/データベース名
- ユーザー名 / パスワード
- コレクション名
※ ユーザー名 / パスワードをURIに含める場合は、
mongodb://ユーザー名:パスワード@ds??????.mlab.com:ポート番号/データベース名