Я пытаюсь найти лучший дизайн для системы обмена сообщениями, которую я переношу с SQL Server на MongoDB - в настоящее время (в SQL Server) есть таблицы деревьев, которые хранят сообщение: Сообщения, Входящие и Отправленные. Сообщение сохраняется в таблице "Сообщения", а "Входящие/Отправленные" имеют записи для всех получателей/отправителей для каждого сообщения.
Теперь, в MongoDB, я хотел объединить эти три в одну коллекцию с такими документами:
{
_id:
subject:
body:
sender: {memid:, name:}
recip: [{memid:, name:}, {memid:, name:}, {memid:, name:}, etc]
}
Теперь мне нужно получить все сообщения для данного получателя memid, и мне нужно сделать это быстро, поэтому необходим индекс (у меня будут сотни миллионов таких записей). Итак, мой вопрос: могу ли я индексировать поле документа в массиве?