我正在尝试在我的站点上设置搜索功能,我正在尝试为以下内容查找 IndexedDB 代码
SELECT "column"FROM "table"WHERE "column"LIKE "%keyword%"
我在 IndexedDB Fuzzy Search 中找到了解决方案
db.transaction(['table'], 'readonly')
.objectStore('table')
.openCursor(IDBKeyRange.bound(keyword, keyword + '\uffff'), 'prev')
.onsuccess = function (e) {
e || (e = event);
var cursor = e.target.result;
if (cursor) {
console.log(cursor.value.column);
cursor.continue();
}
};
但是我怎样才能找到“%keyword%”而不是“%keyword”呢?
最佳答案
IndexedDB 中没有类似于 SQL WHERE 的内容。
我会遍历表/对象存储值并查看当前游标列是否包含关键字:
var keyword = "foo";
var transaction = db.transaction("table", "readwrite");
var objectStore = transaction.objectStore("table");
var request = objectStore.openCursor();
request.onsuccess = function(event) {
var cursor = event.target.result;
if (cursor) {
if (cursor.value.column.indexOf(keyword) !== -1) {
console.log("We found a row with value: " + JSON.stringify(cursor.value));
}
cursor.continue();
}
};
关于javascript - 如何在 indexeddb 中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15995583/