我有一个使用[contact_id,datetime]的keyPath的消息的indexeddb存储
我正在努力解决的问题是如何构建一个查询,让我可以拉回contact_id =某个值的所有记录。
1:我接近这个方法是正确的。我只需要根据contact_id搜索记录。我添加的日期时间使记录变得清晰,因为它们需要偶尔更新。
2:如何通过contact_id检索记录? (Yathit或indexeddb示例都很棒。)
答案 0 :(得分:0)
在联系人ID属性上创建索引,然后遍历索引。
在onupgradeneeded
messageStore.createIndex('contact_id_index','contact_id');
在您的查询代码中
function selectMessagesByContactId(db, contactId,
perMessageHandler, onIterationCompleted) {
var tx = db.transaction('messages');
tx.oncomplete = onIterationCompleted;
var store = tx.objectStore('messages');
var index = store.index('contact_id_index');
var range = IDBKeyRange.only(contactId);
index.openCursor(range).onsuccess = function(event) {
var cursor = event.target.result;
if(cursor) {
perMessageHandler(cursor.value);
cursor.continue();
}
};
}