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