我尝试使用一个包含3个属性的复合索引,通过between()函数过滤出一定范围的条目。
例如:
db.version(1).stores ({
apps: "id,age,shoeSize,height,[age+shoeSize+height]"
});
db.table
.where('[age+shoeSize+height]')
.between([15, 8, 60], [20, 10, 70]);我希望上面输出的条目年龄在15-20岁之间,shoeSizes在8-10之间,身高在60-70之间。
然而,Dexie在这里似乎只按年龄过滤(并按年龄升序排序),而没有过滤掉任何不在我查询范围内的shoeSizes或身高。当我运行代码时,没有控制台错误。我是不是误解了between和复合索引的工作方式?在Dexie中有什么方法可以实现这种功能吗?
发布于 2020-02-26 04:55:05
据我所知,一种解决方法是按一个属性(例如年龄)对WhereClause进行筛选,然后再按其余筛选器对结果集合对象进行筛选。我想知道是否有其他方法可以做到这一点,使用between()和复合索引。
https://stackoverflow.com/questions/60401575
复制相似问题