Comme indiqué ci-dessous, la clé primaire d'une donnée que j'ai stockée est timeStamp. Ce que je sais, c'est que ces données peuvent être trouvées en obtenant la valeur de la clé primaire, mais les données ne peuvent-elles pas être récupérées en interrogeant d'autres valeurs ? Les conditions de requête similaires aux instructions SQL ne peuvent-elles pas être implémentées ? (Vérifiez-les tous, puis parcourez les résultats et éliminez-les)
db.createObjectStore('book', {
keyPath: "timeStamp"
});
store.get(1496251171844)
Certaines personnes disent d'utiliser un index, mais l'index ne peut pas être interrogé en fonction de la valeur. Je dois encore porter un jugement. Ce que je veux, c'est directement store.get(group) pour obtenir le groupe spécifié sous le stockage d'objets.
var book = db.createObjectStore('book', {
keyPath: "timeStamp"
});
// 建立索引
book.createIndex("groupId","groupId", {unique:false});
--------------------------------------------------------
html5.indexedDB.getFromId = function(groud, callback){
var db = html5rocks.indexedDB.db;
var tx = db.transaction(['book'],'readwrite');
var store = tx.objectStore('book');
var index = store.index("groupId");
request = index.openCursor();
request.onsuccess = function(event){
var result = event.target.result;
if(!result){return;}
if(result.value.groupId == groud){
callback(result.value);
}
result.continue();
};
};
createIndex peut ajouter plusieurs index et définir si la valeur de l'index est unique
indexedDB est similaire à nosql, il ne peut s'appuyer que sur l'indexation de mots clés et il n'y a aucun moyen d'interroger par SQL. Après avoir obtenu la collection, vous pouvez utiliser la méthode js pour effectuer une recherche.