越前R&D

アクセスカウンタ

zoom RSS Google Apps Script からMongoDBを使う (MongoLab邂逅編)

<<   作成日時 : 2014/04/10 20:51   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

Google Apps Script すごい。サーバーサイドのJavascript実行環境なのにタダで使える。
でもデータストアが弱い。ScriptDBは小さすぎる(1アカウント50メガ)し、Google シートへの保存はクエリ機能が弱い。作り捨てのツールを作る分にはベストなんだけど……

ならば、データストアとして外部のMongoDBをREST API で利用できないだろうか。
できる、できるのだ。たぶん。

MongoLab (http://mongolab.com )は、MongoDB のDaaS (Database as a Service) 。500Mbyteまで無料で使わせてくれるプランがある。これを今回使ってみよう。

1.Mongolab にサインアップ
2.データベースを作成
3.データベースユーザーを作成
4.mongoシェルで接続


1.MongoLabにサインアップ
 
http://mongolab.com/welcome にアクセスして、右上の”Sign Up”をクリック。

画像


 よくあるサインアップ手順をこなす。 Master Services Agreement は一度開いてひと通り目を通さないと、同意のチェックボックスを付けさせてくれない。

画像



2.データベースを作成
 データベースを作成。ここで”Create new”をクリック。

画像


 するとこんな画面に飛ぶ。

画像



Cloud Provider の選択:
 AmazonWebServices の Amazon's US East(Virginia Region(us-east-1) あたりを選択
#一例。ここの選択によっては後述の500Mbフリープランを使えなかったりする。日本関連はどれもフリープラン無し。

Planの選択:
 無料プランを使うなら、Single-node(development) >Sandboxを選択。

Storage options:
0.5GB以外に選択肢なし

Database name:
お好みで。(今回は "idress" としてみた)

最後に一番下の"Create new MongoDB deployment"をクリック。
リストに作ったデータベースが出てくるはず。 データベース名をクリック。

画像


mongoシェルでのつなぎ方が書いてるっぽい。試してみたくなるが、先にデータベースユーザーを作らないと。
画像


3.データベースユーザーを作成

 さっきの画面の中程の”Users”をクリック。

画像


 ”Add database User”をクリック。ダイアログの”DB username" "DB password" "Confirm password" を埋めて"Create"。
 これでデータベースユーザーが作れる。

4.mongoシェルで接続
 おもむろにmongo シェルで接続。コマンドのオプションにさっき作ったデータベースユーザーの名前とパスワードを含める。


PS C:\Users\kurosaki_koh> mongo ds047198.mongolab.com:47198/idress -u kurosaki -p ######
MongoDB shell version: 2.6.0
connecting to: ds047198.mongolab.com:47198/idress
rs-ds047198:PRIMARY> show dbs
2014-04-10T14:14:02.711+0900 listDatabases failed:{ "ok" : 0, "errmsg" : "unauthorized" } at src/mongo/shell/mongo.js:47
rs-ds047198:PRIMARY> show collections
formed_bbs
system.indexes
system.users
rs-ds047198:PRIMARY> db.test_collection.insert({name:'test' , content:'Hello MongoLab!'})
Cannot use commands write mode, degrading to compatability mode
WriteResult({ "nInserted" : 1 })
rs-ds047198:PRIMARY> show collections
formed_bbs
system.indexes
system.users
test_collection
rs-ds047198:PRIMARY> db.test_collection.find();
{ "_id" : ObjectId("5346291b7f7f946e9c116ae9"), "name" : "test", "content" : "Hello MongoLab!" }
rs-ds047198:PRIMARY>



うん、いけてるっぽい。#"degrading to compatability mode"てのがいろいろ気になるけど。

つづく。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Google Apps Script からMongoDBを使う (MongoLab邂逅編) 越前R&D/BIGLOBEウェブリブログ
文字サイズ:       閉じる