node.jsのいろいろなモジュール40 – mongoDBライクな軽量データベース:EJDB
mongoライクな軽量データベースモジュール
ejdbはmongodbのように、json形式でデータを扱える軽量データベースです。 sqliteのようにファイルにデータを保存します。 また、ejdbはnode以外にもC/C++/Java/.Net/python等、いろいろな言語で動作します。 nodeの場合、npmでインストールも簡単なので試してみましょう。
環境構築方法
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.7.5
- Node.js : v0.10.8
- npm : 1.2.23
npmを使用してモジュールをインストールしましょう。
% npm install ejdb
ejdbをつかってみる
ejdbのGithubには、下記のようにそのまま動くサンプルもあります。
var EJDB = require("ejdb"); var jb = EJDB.open("zoo", EJDB.DEFAULT_OPEN_MODE | EJDB.JBOTRUNC); var parrot1 = { "name" : "Grenny", "type" : "African Grey", "male" : true, "age" : 1, "birthdate" : new Date(), "likes" : ["green color", "night", "toys"], "extra1" : null }; var parrot2 = { "name" : "Bounty", "type" : "Cockatoo", "male" : false, "age" : 15, "birthdate" : new Date(), "likes" : ["sugar cane"] }; jb.save("parrots", [parrot1, parrot2], function(err, oids) { if (err) { console.error(err); return; } console.log("Grenny OID: " + parrot1["_id"]); console.log("Bounty OID: " + parrot2["_id"]); jb.find("parrots", {"likes" : "toys"}, {"$orderby" : {"name" : 1}}, function(err, cursor, count) { if (err) { console.error(err); return; } console.log("Found " + count + " parrots"); while (cursor.next()) { console.log(cursor.field("name") + " likes toys!"); } cursor.close(); //It's not mandatory to close cursor explicitly jb.close(); //Close database }); });
サンプルでは、zooという名前でDBをopenした後、オブジェクトの登録と検索を行なっています。 登録や検索の方法も、シンプルで理解しやすいですね。
まとめ
とても簡単にプログラムに組み込んで使えました。手軽にnodeアプリに組み込めるので便利ですね。
参考サイトなど
- 公式: http://ejdb.org/
- Github: https://github.com/Softmotions/ejdb/