node.jsからMongoLabのMongoDBに接続する

mongolabはMongoDBのホスティングサービスで、500MBまで無料みたいなので
WindowsAzureのCentOSにnode.js実行環境を構築して使ってみました。
自前でMongoDBを用意した場合も手順は同じだと思います。

データベース作成

mongolabにSign Upしてデータベースを作成します。
簡単なので割愛。作成するとホスト名とポート番号が振られるのでメモします。

MongoDBのモジュールをインストール

以下のコマンドを実行

$ npm install mongodb

MongoDBに接続する

Server生成 -> DB生成 -> 認証 -> コレクション操作
の手順で作成したデータベースに接続します。

var mongo = require('mongodb');
var server = new mongo.Server('ds000000.mongolab.com', '99999');
var db = new mongo.Db('dbname', server, {safe: false});

// 引数の取得
var message = process.argv[2];
var test_mongolab = function(err, collection) {
    // 引数がある場合はINSERT
    if (message) {
        collection.insert({text: message, date: new Date()});
    }
    // コレクションを確認
    collection.find().toArray(function(err, results) {
        console.log(results);
        db.close();
    });
}
// DB接続
db.open(function(error, data) {
    // 認証
    data.authenticate('username', 'password', function(err, data){
        // コレクション操作
        db.collection('messages', test_mongolab);
    });
});

実行結果

$ node mongolab.js mongolab
[ { text: 'mongolab',
    date: Sat Mar 23 2013 11:38:29 GMT+0000 (UTC),
    _id: 514d943516849d410f000001 } ]