indexeddb - indexedDB 中不区分大小写的搜索

标签 indexeddb case-sensitive

有人可以告诉我是否可以使用 index、openCursor 和 keyRange 在 indexeddb 对象存储上执行不区分大小写的搜索....
我可以区分大小写并设法使用 toUpperCase 函数来实现一些东西,但是有很多不同的变体,它不可行依赖...
欢迎任何帮助......谢谢......
尝试示例:

var transaction = db.transaction("products", IDBTransaction.READ_ONLY);
var store = transaction.objectStore("products");
var descIndex = store.index('Index1');
var boundKeyRangeUpper = IDBKeyRange.bound(request.term.toUpperCase(), (request.term.toUpperCase()+'Z'));
descIndex.openCursor(boundKeyRangeUpper).onsuccess = function (e) 

更新
这就是我最终实现的:
涵盖和可能性的四个范围,即 FA,fA,Fa,fa... 这仅在第一个字母上完成,即“F”
var boundKeyRangeUpper = IDBKeyRange.bound(term.toUpperCase(), term.toUpperCase()+'Z'); var boundKeyRangeUpper2 = IDBKeyRange.bound(term.toUpperCase(), term.toUpperCase()+'z'); var boundKeyRangeLower = IDBKeyRange.bound(term.toLowerCase(), term.toLowerCase()+'z'); var boundKeyRangeLower2 = IDBKeyRange.bound(term.toLowerCase(), term.toLowerCase()+'Z');
上面搜索的结果存储在另一个 objectStore 中,但它们的描述为大写,因此 FISH、FRUIT、FRESH SALAD... 现在如果在 F 之后按下一个字母,例如'r' 搜索将查看这个新的对象存储,其中所有内容都是大写的......到目前为止,这不是一个理想的解决方案,但它有效并且很快满足我的需求......也许我们最终会得到不区分大小写的搜索不是...

最佳答案

我建议修改对象存储的结构,这是通过添加一个列(即存储中每个对象的属性),其键的值相同但为大写,然后将此新属性设为键。

//object
var lang = {
    name: 'Javascript',
    keyName: '', //THE NEW PROPERTY - KEY OF THE OBJECTSTORE
    interest: 100
};

当您将对象添加到商店时,使用名称(或术语或其他)的大写修改新属性,因此该对象将是:
//object
var lang = {
    name: 'Javascript',
    keyName: 'JAVASCRIPT', // NEW PROPERTY MODIFIED TO UPPERCASE OF OLD KEY
    interest: 100
};

然后继续你的代码。

关于indexeddb - indexedDB 中不区分大小写的搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9706907/

相关文章:

java - 不区分大小写的 File.equals 在区分大小写的文件系统上

java - 单位;对表/列名的区分大小写感到困惑

notepad++ - 将第一个小写转换为大写,将大写转换为小写(正则表达式?)

javascript - Web 浏览器存储 : Security implications of allowing user-supplied Strings to be evaluated?

javascript - 使用 .csv 文件数据填充 IndexedDB

javascript - 将索引添加到 IndexedDB 中的现有对象存储

MySQL 区分大小写的文本数据外键

data-structures - coldfusion 中的 structKeyExists 是否区分大小写?

javascript - 如何根据包含 '-' 个字符的部分字符串匹配索引来选择记录?

javascript - 删除所有索引数据库