如何以逆序获取indexedDB游标的结果

1cklez4t  于 2022-12-09  发布在  IndexedDB
关注(0)|答案(1)|浏览(207)

我编写了下面的代码来迭代存储在indexedDB中的对象的行。我使用的是Google Chrome浏览器。

'use strict';
    var openRequest = indexedDB.open('Library', 1);
    var db;

    openRequest.onupgradeneeded = function(response)
    {
        console.debug(1);
        response.currentTarget.result.createObjectStore("authors",{ keypath: 'id', autoIncrement: true });
    }  

    openRequest.onsuccess = function(response) {
        console.debug('success opening indexeddb');
        db = openRequest.result;
       findAuthors();
    };

    function findAuthors() {
        var trans = db.transaction('authors', 'readonly');
        var authors = trans.objectStore("authors");
        var request = authors.openCursor();
        request.PREV = true;
        request.onsuccess = function(response) {
        var cursor = response.target.result;
        if (!cursor) {
        alert('No records found.');
        return;
        }
        alert('Id: ' + cursor.key + ' Last name: ' + cursor.value.lastName);
        cursor.continue();
        };
        request.onerror = function(response) { // display error
        };
    }

我的数据库中的记录如下:

当前的迭代顺序是键2,3,然后是键4。我想要的是,当我开始迭代游标时,我得到的是键4,3,然后是键2的行,即以相反的顺序。我试着在游标对象上使用一个PREV布尔属性,但它似乎不起作用:

request.PREV = true;

相关问题