こんにちは。おいかわです。
Googleフォームって知ってますか?。簡単にアンケートフォームが作れてしまうんです。しかもノンプログラミングで出来てしまうんです。すごいですね!このただでさえ便利なGoogleフォームをさらに便利に使うためにMongoDBと連携させる方法をご紹介します!しかもノンプログラミングで出来てしまうんです(2回目)。
MongoDBの準備
MongoDBのサーバーとして今回はAmazon Linuxを使用しました。 MongoDBのインストール手順はこちらを参照してください。
セキュリティグループでMongoDBにアクセスするポートを開けておく必要があります。
データベースとコレクションを作成しておきます。
データベース名:form
コレクション名:form_coll
コマンドについてはこちらを参考に。
gihyo.jp
Google フォームの準備
GoogleフォームはGoogleドライブの一機能として提供されています。簡単に作れますので作り方の説明は省略します。こんなアンケートフォームを作りました。
連携の設定(zapier)
GoogleフォームとMongoDBの連携にはzapierを使います。zapierとはWebサービス同士をサイト上から簡単に連携させることが出来るWebサービスです。 (https://zapier.com)
- アカウント作成後、ヘッダーの「MAKE A ZAP!」をクリックします。
連携させるサービスとトリガーとなるアクションを設定します。
左側が起点となるサービスです。ここでGoogleスプレッドシートを選択していますが、これはGoogleフォームは回答内容をスプレッドシートに保持するためです。回答がされる毎にスプレッドシートに1行追加されていきます。そのアクションをトリガーとしてMongoDBにドキュメントを追加します。MongoDBのアカウントを選択します。 ここではHostとPortのみでOKです。
対象のスプレッドシート名とシート名を選択します。
Googleドライブ内にあるスプレッドシートから選択することが可能です。MongoDBのデータベース・コレクションの選択とMongoDBに登録する時のKeyと各項目を紐付けをします。
あとは名前をつけて登録完了です!
実行してみる
まずはGoogleフォームに回答を登録してみましょう。
Googleスプレッドシートには下記のように登録されています。
DASHBOARDの該当のZAPのメニューから「Run」を実行します。
実行中ダイアログが表示されます。連携が成功したようです!
MongoDBの方を見てみましょう。find()を実行します。
おおおおおおおおおお!しっかり格納されています!
このようにノンプログラミングで出来てしまうんです(3回目)。MongoDBと連携することにより回答結果の集計もやりやすくなりますね。
実は今回、最初はMySQLと連携させるつもりでした。しかし、MySQLとの連携はzapierの有料アカウントが必要なのでMongoDBにしたのですが、アンケートフォームという性質上スキーマレスなMongoDBの方があっているかもしれませんね。