【发布时间】:2020-09-24 10:43:24
【问题描述】:
我正在实现一个像 Facebook 这样的聊天系统,我有两张表,一张是消息,一张是对话:
conversations
id | peoples | updatedAt
1 [user1, user2] Today 8:10 PM
2 [user1, user2] Today 9:03 PM
3 [user1, user2] Today 5:01 PM
4 [user1, user2] Today 5:01 PM
5 [user1, user2] Today 5:01 PM
6 [user1, user2] Today 4:01 PM
当用户发送消息时,我将conversations 的updatedAt 字段更新为当前时间,这样我就可以查询最新的对话,但这里的问题是我如何在此之后继续查询最新的对话?例如,首先我将查询两个最新的对话,如您所见,这里将返回一个id为2 and 1的对话,然后我保存id为1的updatedAt值(值为Today 8:10 PM)所以我可以继续查询条件为{updatedAt: {$lte: Today 8:10 PM}的最新对话,并且只接受2个对话,如first,它将返回id为3,4的对话,我保存id为4的updatedAt字段(值为Today 5:01 PM),继续具有相同条件的查询:{updatedAt: {$lte: Today 5:01 PM} 它将返回 ID 为 3,5 的会话,ID 为 3 在我不需要它之前我有查询,那么如何避免这种情况?我使用 mongodb 作为数据库
【问题讨论】: