この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
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/