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