2016-07-31 6 views
1

{name: 'example1'}の形式でindexeddbにデータがあり、すべてがアルファベット順に並んでいる場合、どのようにアルファベット順で最後にレコードを追加できますか? (間違っている - それは 'Z' の文字で始まる最後のレコードを取る)indexeddb最後にアルファベット以外のレコードが追加されました

が、これはデータベース

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"); 
... 

と、これが最後の項目を取得しているため、私のinitです:

  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); 
         }; 
         } 
        } 
       } 
      }  

感謝!

答えて

2

私は2つの方法を考えることができます。

1)オブジェクトごとにプロパティを作成した日付を格納します。このプロパティにインデックスを作成します。このインデックス上のprevでカーソルを開きます。

2)基本IDを使用してオブジェクトを格納します。 nameにインデックスを作成します。名前順にオブジェクトをロードする場合は、名前インデックスを使用します。最後に挿入したオブジェクトをロードするときは、自然順序(挿入順序)を使用するオブジェクトストア自体にカーソルを移動するだけです。

関連する問題