从Indexeddb获取特定ID

syd619

在我的项目中,我使用浏览器的索引数据库,我想从数据库中检索具有特定ID的某些对象。根据MDN,您可以使用范围来获取所需的结果:

根据MDN:

// Only match "Donna"
var singleKeyRange = IDBKeyRange.only("Donna");

// Match anything past "Bill", including "Bill"
var lowerBoundKeyRange = IDBKeyRange.lowerBound("Bill");

// Match anything past "Bill", but don't include "Bill"
var lowerBoundOpenKeyRange = IDBKeyRange.lowerBound("Bill", true);

// Match anything up to, but not including, "Donna"
var upperBoundOpenKeyRange = IDBKeyRange.upperBound("Donna", true);

// Match anything between "Bill" and "Donna", but not including "Donna"
var boundKeyRange = IDBKeyRange.bound("Bill", "Donna", false, true);

// To use one of the key ranges, pass it in as the first argument of openCursor()/openKeyCursor()
index.openCursor(boundKeyRange).onsuccess = function(event) {
  var cursor = event.target.result;
  if (cursor) {
    // Do something with the matches.
    cursor.continue();
  }
};

但是,如果您希望通过单个请求获取不按顺序且不连续的特定ID数组(例如:[91,819,34,24,501]),该怎么办?

德哈特

通过使用光标一键获取多个对象是可能的。

键需要排序。

var keys = [91,819,34,24,501].sort(function(a, b) {
   return a - b;
});
var results = [];
var i = 0;
var cursorReq = store.openCursor();
cursorReq.onsuccess = function(e) {
   var c = e.target.result;
   if(!c) { return; /* done */ }
   while(c.key > keys[i]) {
      i++;
      if(i === keys.length) { return; /* done */ }
   }
   if(c.key === keys[i]) { // found
      results.push(cursor.value);
      c.continue();
   } else { c.continue(keys[i]); }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

优化:从IndexedDB获取特定值(而不是更多)

来自分类Dev

从indexeddb索引获取唯一ID

来自分类Dev

使用jQuery获取特定的ID

来自分类Dev

从列表视图获取特定的ID

来自分类Dev

从json文件获取特定ID

来自分类Dev

如何获取由objectstore.add()添加到IndexedDB的对象的(自动递增)ID?

来自分类Dev

从indexedDB获取游标的值

来自分类Dev

如何获取具有特定ID的记录?

来自分类Dev

如何从从日期算起的特定ID获取记录?

来自分类Dev

通过其ID获取特定节点?

来自分类Dev

在每个循环中获取特定的ID

来自分类Dev

从网络网格获取特定ID的模式

来自分类Dev

通过其ID获取特定的节点?

来自分类Dev

获取没有特定ID的元素-jQuery

来自分类Dev

在每个循环中获取特定的ID

来自分类Dev

如何获取特定网络接口的设备ID?

来自分类Dev

如何获取特定ID的Restful数据

来自分类Dev

如何获取特定ID的列的MAX计数?

来自分类Dev

角度获取特定ID内的标签内容

来自分类Dev

Rails获取特定ID后的记录

来自分类Dev

如何获取特定ID的最后插入记录?

来自分类Dev

获取特定列中的所有 ID

来自分类Dev

获取具有特定 ID 的元素的孙

来自分类Dev

从 powershell 输出中获取特定进程 ID

来自分类Dev

JS:按特定顺序获取对象的 ID

来自分类Dev

在循环中获取特定的按钮ID和div ID

来自分类Dev

使用lawndart获取indexedDB中对象的值

来自分类Dev

IndexedDb - 从 ObjectStore 中获取最后添加的项目

来自分类Dev

使用ID键更新IndexedDb记录的单列