javascript - 如何在 indexeddb 中搜索字符串

标签 javascript search indexeddb

我正在尝试在我的站点上设置搜索功能,我正在尝试为以下内容查找 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/

相关文章:

javascript - 将 JSON 转换为 CSV,并让 Headers 成为父级的串联

javascript - FB.login 回调未在 JavaScript 中调用

javascript - knockout 映射 fromJS fromJSON 在集合中不起作用?

javascript - 多个 jQuery :contains() args not working

javascript - 在移动应用程序的 Javascript 中动态加载图像而不阻塞 UI?

java - 在 Lucene 中搜索句子并获得匹配的术语

java - 使用 arrayList 中的两个键进行搜索

dart - 在Dart中使用IndexedDb ObjectStore

javascript - 使用db.js查询IndexedDB时如何获取key和value?

android - Android 上的 Chrome 浏览器 : Granted Quota for IndexedDB suddenly almost 0