mongodb limit во встроенном документе

Мне нужно создать систему сообщений, в которой человек может общаться со многими пользователями. Например, я начинаю говорить с пользователем2, пользователем3 и пользователем4, так что любой из них может видеть весь разговор, и если разговор не приватный в любой момент времени любой из участников может добавить любого другого человека в разговор.

Вот моя идея, как это сделать. Я использую Mongo, и моя идея состоит в том, чтобы использовать диалог в качестве экземпляра вместо сообщения.

Схема выглядит следующим образом:

{
_id : ...., // dialog Id
'private' : 0 // is the conversation private
'participants' : [1, 3, 5, 6], //people who are in the conversation
'msgs' :[
  {
   'mid' : ...// id of a message
   'pid': 1, // person who wrote a message
   'msg' : 'tafasd' //message
  },
  ....
  {
   'mid' : ...// id of a message
   'pid': 1, // person who wrote a message
   'msg' : 'tafasd' //message
  }
]
}

Я вижу несколько плюсов для такого подхода - в большой базе данных будет легко найти сообщения для определенного диалога. - будет легко добавлять людей в беседу.

но есть проблема, для которой я не могу найти решение: разговор становится слишком длинным (возьмем для примера skype), и они не показывают вам весь разговор, они показывают вам часть, а затем показывают вам дополнительные сообщения. В других ситуациях пропуск, ограничение решает дело, но как я могу сделать это здесь?

Если это невозможно, какие у вас есть предложения?

7
задан TJD 9 December 2011 в 22:58
поделиться