Вы определенно не хотите вставлять сообщения в другие документы. Они нуждаются в для хранения в виде отдельных документов.
Я говорю это, потому что MongoDB выделяет определенное количество места для каждого документа, который он пишет. Когда он пишет документ, он берет его текущий размер и добавляет к документу некоторое пустое пространство (заполнение), так что если он на самом деле имеет размер 1 КБ, он может стать большим 1,5 КБ, чтобы оставить место для увеличения размера документа.
Сообщения чата почти наверняка будут больше, чем выделенное свободное пространство. Несколько сообщений будут абсолютно больше, чем свободное пространство.
Проблема в том, что когда документ не помещается в его текущем местоположении на диске \ памяти, когда вы пытаетесь встроить в него другой документ (через обновление), база данных должна прочитать этот документ с диска \ памяти и переписать весь вещь в конце файла данных.
Это вызывает много дисковой активности, которая в противном случае не должна существовать - этот добавленный ввод-вывод ухудшит производительность базы данных.