2016-07-31 18 views
1

Wenn ich Daten in indexeddb im Format {Name: 'Beispiel1'} mit Schlüsselpfad - Name und alles alphabetisch geordnet ist, wie kann ich zuletzt hinzugefügt Datensatz nicht alphabetisch?indexeddb bekomme zuletzt hinzugefügten Datensatz nicht-alphabetisch

das ist mein init für Datenbank

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

und dies wird das letzte Element bekommen (was falsch ist - es dauert mit 'z' Brief letzte Aufzeichnungen beginnend):

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

Dank!

Antwort

2

kann ich zwei Möglichkeiten denken:

1) speichert ein Datum erstellt Objekt pro Objekt. Erstellen Sie einen Index für diese Eigenschaft. dann öffne einen Cursor mit prev auf diesem Index.

2) Objekte mit einer Basis-ID speichern. Erstellen Sie einen Index für den Namen. Wenn Sie Objekte nach Namen laden möchten, verwenden Sie den Namensindex. Wenn Sie das zuletzt eingefügte Objekt laden möchten, öffnen Sie einfach einen Cursor auf dem Objektspeicher selbst, der die natürliche Reihenfolge (Einfügereihenfolge) verwendet.