IDBKeyRange - openCursor vs获取用于检索最新行

时间:2015-04-26 13:45:05

标签: javascript indexeddb

我倾向于通过这两个查询之一查询最新记录。

var range = IDBKeyRange.bound([1,0],[1,Date.now()]);
var article = db.transaction('article').objectStore('article').index('userid-date_created');

article.openCursor(range,'prev').onsuccess = function(e){
   var rowA = e.target.result.value;
};

//or
article.get(range).onsuccess = function(e){
    var rowB = e.target.result;
};

openCursor方法显然有效,但我不知道get方法。

上述查询是否输出相同的记录?

1 个答案:

答案 0 :(得分:1)

get查询找到第一个匹配的对象。这类似于打开向前移动的光标,当您没有为openCursor指定第二个参数时,或者当您指定'next'参数时,会发生这种情况。

你打开了一个带有第二个参数'prev'的光标,它从最后一个匹配的对象开始并向后移动。

显然,匹配对象集合中的第一个和最后一个对象不是同一个对象,除非总共只有一个匹配对象。