8

下限範囲クエリでカーソルを使用しています。データベースの「LIMIT n」句のように、返されるオブジェクトの数を制限する方法が見つかりません。

var keyRange = IDBKeyRange.lowerBound('');

存在しませんか?

4

3 に答える 3

10

結果を反復処理しているときは、いつでも停止できます。このようなものが動作するはずです:

var results = [];
var limit = 20;
var i = 0;

objectStore.openCursor().onsuccess = function (event) {
  var cursor = event.target.result;
  if (cursor && i < limit) {
    results.push(cursor.value);
    i += 1;
    cursor.continue();
  }
  else {
    // Do something with results, which has at most 20 entries
    console.log(results);
  }
};

また、連番で構成されるキーに基づいて選択する特殊なケースでは、keyRange を使用して特定の範囲のみを明示的に返すことができます。しかし、一般的にはそうではありません。

于 2012-08-28T21:01:54.720 に答える
0

IDBKeyRange.bound関数を使用して indexedDB の範囲で検索することもできます

IDBKeyRange.bound(keyValueFrom, keyValueTo, false, true);

開始値、終了値、および返されるアイテムに開始値と終了値を含めるかどうかを設定できます。私の場合、範囲の最初の値が必要ですが、最後の値を除外したいです。

IDBKeyRange の詳細については、W3C IndexedDB ページをご覧ください。

于 2012-08-28T13:14:26.033 に答える