Indexed Database APIを使いやすくするためのライブラリ KageDB その5 - フェッチ
KageDB の紹介です。バージョンはちょこちょこ上げていて、今は0.0.3です。
今回は、フェッチについて書きます。
前回、カーソルについて紹介しましたが、カーソルは1件1件取得する処理なので、全件取得するには次のようなコードが必要です。
myDB.tx(["person"], function (tx, person) { var results = []; // personから全件取得 person.openCursor(function (cursor) { if (cursor) { results.push(cursor.value); cursor.next(); // cursor.nextはcursor.continueのエイリアス } else { console.log("done: " + JSON.stringify(results)); } }); });
まあ、たいしたことないですがちょっと面倒ですね。KageDBでは、fetchというメソッドを用意していて、次のように書けるようにしています。カーソルのショートカットのようなものと考えてもらえればいいでしょう。
myDB.tx(["person"], function (tx, person) { // personから全件取得 person.fetch(function (results) { console.log("done: " + JSON.stringify(results)); }); });
keyRangeやdirectionと組み合わせて使うこともできます。
// personからキーが30以上のものを昇順で取得 person.fetch({ge: 30}, function (results) { ... });
// personからキーが30以上のものを降順で取得 person.fetch({ge: 30}, "prev", function (results) { ... });