【问题标题】:indexeddb getting last added record non-alphabeticallyindexeddb 以非字母顺序获取最后添加的记录
【发布时间】:2016-07-31 08:42:59
【问题描述】:

如果我在 indexeddb 中有格式为 {name:'example1'} 的数据和 keypath - name 并且所有内容都按字母顺序排列,我如何才能不按字母顺序获得最后添加的记录?

这是我的数据库初始化

 var openRequest = indexedDB.open("database",1);
openRequest.onupgradeneeded = function(e) {
    var thisDB = e.target.result;

    if(!thisDB.objectStoreNames.contains("add")) {
        var store = thisDB.createObjectStore("add",{keyPath: 'name'});
    }
    if(!thisDB.objectStoreNames.contains("del")) {
        var store = thisDB.createObjectStore("del",{keyPath: 'name'});
    }

}

openRequest.onsuccess = function(e) {
    console.log("running onsuccess");
    db = e.target.result;
    var transaction = db.transaction(["add"],"readonly");
    var store = transaction.objectStore("add");
...

这是获取最后一项(这是错误的 - 它需要以“z”字母开头的最后一条记录):

            var openRequest = indexedDB.open('database');
            var type = true;

            openRequest.onsuccess = function(e) {
                db = e.target.result;
                if(type) {
                    var transaction = db.transaction(msg.type,"readwrite");
                    var store = transaction.objectStore(msg.type);
                    var cursorRequest = store.openCursor(null,"prev");
                    cursorRequest.onsuccess = function(e) {
                      var result = e.target.result;
                      if(result) {
                        var key_t = result.key;
                        var del_request = result.delete();
                        del_request.onsuccess = function() {
                          console.log('Deleted '+key_t);
                        };
                      } 
                    }
                }
            }    

谢谢!

【问题讨论】:

    标签: indexeddb


    【解决方案1】:

    我可以想到两种方法:

    1) 存储每个对象的创建日期属性。在此属性上创建索引。然后在这个索引上打开一个带有 prev 的游标。

    2) 使用基本 ID 存储对象。在名称上创建索引。如果要加载按名称排序的对象,请使用名称索引。当您要加载最后插入的对象时,只需在对象存储本身上打开一个光标,它将使用自然顺序(插入顺序)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多