如何在where子句之后获取复合索引的一部分?

时间:2019-05-06 17:22:12

标签: indexeddb dexie

我的商店定义如下:

db.version(DB_VERSION).stores({ STATE: 'state', LOGS: '[timestamp+activity]', })

这将创建一个compound index,稍后可以通过以下方式对其进行访问:

await db.LOGS.where('[timestamp+activity]')
    .below(Date.now() - 604800000)
    .delete()

不过上面的代码片段获取了化合物,而我只需要提取时间戳即可运行below方法。这里的想法是删除超过一周的索引项目。

1 个答案:

答案 0 :(得分:0)

在查询复合索引时,参数必须是第一和第二值的数组。

只需将其更改为:

await db.LOGS.where('[timestamp+activity]')
    .below([Date.now() - 604800000, -Infinity])
    .delete();