小程序
小游戏
企业微信
微信支付
扫描小程序码分享
我是通过collection的aggregate.sort() skip()和limit()相结合进行数据分页的,如果分页过程中数据源发生新增或者删除,此时怎么处理才能保证前端查看的数据是最新的?或者分页数据不被打乱
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
从业务上来说我觉得没必要实时,这种场景很少,再说用户进入删除的详情再提示用户该商品已下架,这个也能接受呀
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
这就需要根据你的id排序,然后每次查询时都带上上一页最小(或者最大的id,取决于你的排序方式)
如果是按照 id 等唯一字段排序(或者创建时间这种近乎唯一的字段),可以先定位偏移位置的值,查询比该值大或者小的数据集,即可保证分页数据不被打乱。该字段最好有索引,以保证查询速度。
不太明白你所说的“前段查看的数据是最新的”是什么意思?
是指新插入的数据,在后续请求下一页时也要出现吗。如果是这样,那不太可能,这样就会忽略掉 sort 排序条件。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
从业务上来说我觉得没必要实时,这种场景很少,再说用户进入删除的详情再提示用户该商品已下架,这个也能接受呀
这就需要根据你的id排序,然后每次查询时都带上上一页最小(或者最大的id,取决于你的排序方式)
如果是按照 id 等唯一字段排序(或者创建时间这种近乎唯一的字段),可以先定位偏移位置的值,查询比该值大或者小的数据集,即可保证分页数据不被打乱。该字段最好有索引,以保证查询速度。
不太明白你所说的“前段查看的数据是最新的”是什么意思?
是指新插入的数据,在后续请求下一页时也要出现吗。如果是这样,那不太可能,这样就会忽略掉 sort 排序条件。
非主键进行sort排序的,新插入的数据会显示吗?