【问题标题】:Dexie.js - Filtering by multiple keys using between and a compound indexDexie.js - 使用 between 和复合索引通过多个键进行过滤
【发布时间】:2020-06-09 14:20:40
【问题描述】:

我正在尝试使用 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 岁之间,鞋码在 8-10 岁之间,身高在 60-70 岁之间。

但是,Dexie 似乎只在这里按年龄过滤(并按年龄升序对其进行排序),而没有过滤掉任何不在我查询范围内的 shoeSizes 或 heights。运行代码时没有控制台错误。我是否误解了 between 和复合索引的工作原理? Dexie 有什么方法可以实现这种功能吗?

【问题讨论】:

  • 贾里德,对不起。刚刚修好了。修正了那个错字,我仍然遇到同样的问题。
  • 有没有办法查看它产生的查询?
  • 很好奇你是否曾经用between 解决了这个问题。我有一个非常相似的问题,the docs 似乎暗示它应该可以工作。
  • 我也很好奇你是否解决了这个问题。我遇到了同样的问题。

标签: javascript dexie dexiejs


【解决方案1】:

据我所知,一种解决方法是按一个属性(例如年龄)过滤WhereClause,然后通过其余过滤器进一步过滤生成的集合对象。我想知道是否还有其他方法可以做到这一点,使用between() 和复合索引。

【讨论】:

    猜你喜欢
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    相关资源
    最近更新 更多