Стоит ли дублировать «шапку» от большой записи в другой коллекции в mongodb?
Вопрос про лучшие практики при работе с mongodb, а не конкретный пример.
Допустим есть большая запись (в плоть до 16Мб), например письмо. И есть его короткие свойства: тема, дата и т.п.
Есть два кейса: просмотр одного письма(документа) целиком, и например просмотр списка писем(темы, даты).
Удобно держать все свойства в одной записи для просмотра документа, но будет ли эффективно выбираться список только тем писем по дате? Стоит ли делать отдельную коллекцию полных документов и дополнительно коллекцию "шапок" из коротких свойств.
Меня мучают сомнения, если использовать 1 коллекцию, то при запросе только короткого свойства документа будет прочитан с диска весь или почти весь документ. Если использовать 2 коллекции, то при редактировании придётся обновлять 2 коллекции и с бизнес логикой могут быть расхождения, со всеми вытекающими теоретическими последствиями.
Погуглил. Для других читателей развернутым ответом будет то, что BSON формат хранения позволяет "перескакивать" (не читать) не затребованные свойства объекта. Поэтому разбивать данные в общем-то не требуется, проблем с этим больше.