IDBKeyRange - 用于检索最新行的 openCursor 与 get

IDBKeyRange - openCursor vs get for retrieving the latest row

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

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 方法。

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

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

您使用第二个参数 'prev' 打开了游标,它从最后一个匹配的对象开始并向后移动。

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