Основная идея заключается в том, что mongoDB был создан для денормализации и встраивания. В одном из моих прошлых проектов я провел денормализацию sql, чтобы получить лучшую производительность, но я не люблю денормализацию sql, потому что очень много дублированныхданные (если у вас есть отношение один ко многим, например).Второй шаг - переписать слой доступа к данным в mongoDB.И в mongoDB для некоторых сложных страниц, где мне нужно загрузить несколько документов, я создал денормализованный документ (с вложенными коллекциями и простыми данными из разных документов), чтобы соответствовать содержанию страницы.Не все мои проблемные страницы работают быстро, как в Facebook;).
Но здесь возможны проблемы, потому что вы должны каждый раз поддерживать денормализованный документ.Также все мои денормализованные обновления данных работают асинхронно, и некоторые данные могут устареть в какой-то момент, но это нормальная практика.Даже в stackoverlow используется денормализация, потому что иногда, когда открывается вопрос, я вижу ответ, но когда я возвращаюсь к списку вопросов и обновляю страницу, иногда вопрос не имеет ответа.
Если мне нужна денормализация, я выбираю mongodb.