indexeddb之索引数据库之一个或另一个匹配的复合索引查询
softidea
阅读:139
2025-02-15 21:57:57
评论:0
如果我的术语不正确或者没有很好地解释,我们深表歉意。不久前,我使用 websql 数据库创建了一些东西,并想尝试将其更改为索引数据库。
我创建了这个索引,它允许我找到主队为特定值和客队为特定值的对象:
objectStore.createIndex("homeAway", ["hometeam", "awayteam"], {unique: false});
因此,如果我正在寻找美国(主队)和俄罗斯(客队)之间的比赛,我会得到我想要的:
var range = IDBKeyRange.only([hometeam, awayteam]);
var index = objectStore.index("homeAway");
但是,如果我想使用这种 .only 方法来查找某个球队在主场或客场比赛的比赛怎么办?像这样:
var range = IDBKeyRange.only([hometeam || awayteam]);
如果我以主场和外场身份进入俄罗斯,它会找到他们的主场或场外位置。这可能吗?
请您参考如下方法:
同时在两个字段上打开和索引是不可能的,但是对于您的情况有一个索引解决方案。
您需要为数组字段创建一个新索引,该字段将包含 multiEntry
属性设置为 true
的两个团队。
objectStore.createIndex("teams", ["teams"], {unique: false, multiEntry: true});
然后将两个团队作为字符串数组存储到该字段中
var obj = {
hometeam: "Russia",
awayteam: "Usa",
teams: ["Russia", "Usa"]
}
现在,当您查询该领域的数据库时,您应该获得 Russia
正在玩的所有游戏:
var index = objectStore.index("teams");
var keyRange = IDBKeyRange.only("Russia");
var cursorRequest = index.openCursor(keyRange);
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。