Я бы сказал, что это зависит от того, как вы планируете использовать данные.Например, если он интенсивно читается и вы обращаетесь только к имени пользователя пользователя в объекте, то, возможно, было бы лучше дублировать эту информацию и в комментарии.Это, конечно, приведет к более высокой стоимости обновления, если вы разрешите изменение имени пользователя и что важно, чтобы комментарии обновлялись с использованием последнего имени пользователя.Мы использовали хранилище документов для наших моделей чтения и пошли по пути дублирования данных, поскольку вместо этого мы создали эффективные представления / документы, созданные для одного контекста представления.Конечно, обновления стали более ресурсоемкими, но для нас это было нормально.Я также работал с другой конструкцией, используя «ручные» ссылки между doc1 и doc2 на основе идентификаторов.Немного больше ручной работы, но гораздо меньше волшебства, чем с O / RM.
Существует классический пример с BlogPost - <1: N> - Комментарии, где комментарии могут содержаться в посте, к которому мы будем иметь доступчерез идентификатор.Опять же, как вы будете использовать это?Будете ли вы когда-либо использовать комментарии без отображения поста?Вас всегда интересуют комментарии при просмотре поста?Существуют ли основные ограничения общего объема хранения документа, например, 16 МБ в MongoDB?Тогда вам, возможно, придется разделиться.
Я знаю очень расплывчатый ответ, но это также очень "вопрос зависит от варианта использования".