ZangoDB - IndexedDBをMongoDB風に操作
HTML5ではKVSとして IndexedDBという機能が提供されています。localStorageなどよりも多くの情報を保存したり、検索したりすることもできるので便利に使えます。しかし使い方を覚えるのが若干面倒です。 そこで使ってみたいのがZangoDBです。IndexedDBをMongoDB風のAPIで操作できるようになります。
ZangoDBの使い方
ZangoDBのサンプルコードです。
let db = new zango.Db('mydb', { people: ['age'] });
let people = db.collection('people');
let docs = [
{ name: 'Frank', age: 20 },
{ name: 'Thomas', age: 33 },
{ name: 'Todd', age: 33 },
{ name: 'John', age: 28 },
{ name: 'Peter', age: 33 },
{ name: 'George', age: 28 }
];
people.insert(docs).then(() => {
return people.find({
name: { $ne: 'John' },
age: { $gt: 20 }
}).group({
_id: { age: '$age' },
count: { $sum: 1 }
}).project({
_id: 0,
age: '$_id.age'
}).sort({
age: -1
}).forEach(doc => console.log('doc:', doc));
}).catch(error => console.error(error));
実行結果です。
開発者ツールでデータも確認できます。
データの追加は insertを使って、それらを検索して取り出しています。MongoDBの操作に慣れている人であれば、こちらの方が分かりやすいコードではないでしょうか。少なくともコールバック方式よりPromiseで書ける方が分かりやすいでしょう。
ZangoDBはJavaScript製のオープンソース・ソフトウェア(MIT License)です。
erikolson186/zangodb: MongoDB-like interface for HTML5 IndexedDB