目前查询分页功能通过messageId来实现
但是如果根据相关条件筛选后 messageId并不是按照顺序返回。就没法实现分页功能了。

比如:

messageId 1 到 messageId 10

10条数据 其中 id为 1、3、5 的 status 某个参数为 true,其它为false。
我查询条件是返回 该参数为true 的数据

所以 status 返回的数据 是 id为1、3、5 三条数据
这样的话 根据 messageId 是不是没法实现分页功能了

正常情况下 maxId 设置 最大编号 +3 这样返回下一页 的三条数据。

但是如果是我刚说的情况 id 并不是按完整顺序来的。
就不知道 maxId 应该设置多少了。 最大编号 +3 就不确定会返回几条数据了

建议通过 createdAt 分页

可是createdAt只精确到秒。
如果有几条数据在同一秒内的呢 可能导致分页不准确了吧

为什么 inboxQuery 不支持 lessThan 呢?
query.lessThan('messageId',40); 这样查不出数据。

messageId是status里的字段吧 只是控制台没有显示 messageId?
还是 status 的 messageId其实不在 db数据库里的,所以lessThan messageId 不生效?

我刚在Status表里添加了 sId 然后 query.lessThan('sId',50);
sId 全部为 0 。 这样还是查不出数据。 Status 是不支持 lessThan?

哦,我好想知道了,用 maxId 配合 limit 可以实现分页。其实挺简单的。

createdAt 是精确到毫秒的。

后台显示createdAt是精确到秒。可以直接比较?

createdAtupdatedAt 都是 UTC 时间戳,以 ISO 8601 标准和毫秒级精度储存:YYYY-MM-DDTHH:MM:SS.MMMZ

文档链接 »3

按常理判断也不可能只精确到秒的,其实你自己动手试一下就知道了。