Как найти последнее сообщение в чате разговора между пользователями в Монго БД - PullRequest
0 голосов
/ 09 октября 2019

Я создаю систему чата. Вот документ chat_history.

{

toUser:123 <Int32>
fromUser:456 <Int32>
message:"message 1" <String>
timeStamp:"2019-10-09 16:39:14:1414",

toUser:456,
fromUser:123, 
message:"Man super man ",
timeStamp:"2019-10-09 16:43:09:0909 PM +05:30",

toUser:101,
fromUser:123, 
message:"last",
timeStamp:"2019-10-09 16:43:09:0909 PM +05:30",


toUser:123 <Int32>
fromUser:456 <Int32>
message:"message 2"
timeStamp:"2019-10-11 16:39:14:1414",

}

Выше приведены примеры коллекций в документе всех сообщений чата между всеми пользователями. Теперь мне нужно найти строки последнего сообщения на основе отметки времени между конкретным пользователем , например: 123 и другие пользователи с 123 сделали чат.

Я новичок в Монго, мне нужен запрос в Монго.

Может кто-нибудь помочь мне с запросом.

Заранее спасибо.

1 Ответ

0 голосов
/ 19 октября 2019

Вы можете получить ответ с агрегацией для этой модели документа, но для высокой производительности, я предлагаю это

Сохранить метку времени как date объект и запрос как следующий

db.chat_history.find({$or: [{fromUser: 123}, {toUser: 123}]}).sort({timestamp: -1}).limit(1)
...