如果我的术语不正确或者没有很好地解释,请道歉。我用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]);
如果我无论是回家还是离开俄罗斯,它都可以找到他们在家或离开的地方。这可能吗?
答案 0 :(得分:4)
一次打开和索引两个字段但是不可能为你的案例提供索引解决方案。
您需要为数组字段创建一个新索引,该字段将包含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);