Мой первый опыт с mongodb. Я пока еще не одуплился, чтобы стать джедаем, и поэтому хочу спросить совета.
Необходимо сделать чат юзер-юзер, используя именно монгу. Сопутствующие технологии - nodejs, socket.io, но это не столь важно.
Начал думать над схемой документа, и над самими коллекциями. Гугл почему-то мне не помог. Может я просто плохо пытался, но кажется что нет.
Прикинув на листочке как это может быть выглядеть, накалякал такое:
collections:
users: {
_id: login,
userId: int
name: str,
avatar: str
}
userId - идентификатор в основной базе (mysql) юзера. Почему то в качестве _id моё нутро подсказало использовать именно login, а он уникальный. Может быть я ошибся ?
Далее:
dialogs: {
precedents: [userId, userId],
messages: [{
date: ...,
text: ...,
sender: userId
}]
}
И тут встал вопрос: правильно ли хранить сообщения в поле-массиве документа ? Как обстоят дела с производительностью при такой схеме ?
Вообще хотелось бы услышать советов, как лучше организовать хранение таких данных в mongo.