我没有找到以下问题的答案。
给出了以下数据结构。我想找出压力为8500的时间(30)。我不知道如何在那里形成查询。
有人能帮帮我吗?谢谢。
亲切的问候
my_db.version(1).stores({
hose: "++, &deviceId, hoseName, *meassuredValues"
my_db.open().then(function () {
my_db.hose.add({
deviceId: "11",
hoseName: "DN 20",
meassuredValues: [
{ pressure: 10000, time: 0 },
{ pressure: 9958, time: 10 },
{ pressure: 9000, time: 20 },
{ pressure: 8500, time: 30 },
{ pressure: 8000, time: 40 },
]
});
});
答案 0 :(得分:1)
如果您只定位Chrome,Opera,Firefox和Safari 10,请使用复合索引。您可以使用[时间+压力](时间和压力的组合)对数据进行索引,然后查询
my_db.hose.where('[time+pressure]').equals([30, 8500]).toArray();
如果您需要定位IE,Edge和Safari< 10,你需要选择一个索引并添加其余的JS过滤器:
my_db.hose.where('pressure').equals(8500).and(function (x) {
return x.time === 30;
}).toArray();