我试图建立一个“日志”表(我的目标是知道应用程序被使用了多少时间),所以我创建了一个功能,检测用户是否在一段时间后不活动。
表是这样的:
dblogs.version(1).stores({
aLogs: "++id, story_id, user_id, session_start, session_end, words_written"
});
因此,当用户处于活动状态时,我会在aLogs上创建一条新记录,例如:
0, 1 , 19 , 2021/06/30 10:15:10
用户19
在2021/06/30 10:15:10
开始键入(这进入session_start),如果用户变为非活动状态,我将当前日期时间添加到session_end
示例:
0, 1 , 19 , 2021/06/30 10:15:10, 2021/06/30 12:15:48
因此,基本上用户估计的时间是这两个日期之间的差值**(在本例中为2h 0m 38s)**
我的目标是有几个这样的日志,然后在上面运行一个循环,并讲述用户“今天”花费的秒数
我如何在Dexie上查询这个?
我尝试了await dblogs.aLogs.get({session_start : "2021/06/30"});
,但它返回undefined
1条答案
按热度按时间yzuktlbb1#
您可能应该具有以下索引:
[user_id+故事_id+会话_start]
这将允许高效查询来检索给定用户、故事和日期的所有日志条目:
如果您需要捕获在昨天和当前日期之间重叠的会话,您可以考虑将dayStart(在between子句中)调整为dayStart之前的某个合理的小时数,然后从结果中忽略(减去)不在当前日期内的持续时间。
在此处阅读有关复合索引的更多信息:https://dexie.org/docs/Compound-Index