Встроенные объекты - это большое большое преимущество любых баз данных nosql. Обычно встраивание = производительность чтения + масштабируемость. Давайте возьмем для примера ТАК. Вы можете встроить вопрос / ответить на комментарии в вопросе, ответить на документ. А это значит, что вам не нужно присоединяться к комментариям, когда вам нужно отобразить ответы / вопросы. Если вам не нужно присоединяться - вы можете перенести коллекцию на отдельный компьютер, чтобы ускорить ваше приложение. В реляционной базе данных подобъекты обычно становятся отдельной таблицей (кроме денормализации). И в моей практике очень много случаев, когда мне нужно встраивать документы.
Но не для всех случаев, в которых хорошо подходит , вы правы насчет «боли в заднице» с вялостью в некоторых ситуациях. Вам не нужно встраивать все! В вашем случае просто создайте отдельную коллекцию для комментариев или ..
В мире nosql есть еще одна хорошо известная концепция: денормализация .
Мне нужно показать последние комментарии в списке обновлений
Хорошо, если вам нужны последние обновления, вы можете вставить последние комментарии в свою коллекцию обновлений, чтобы быстро их отобразить.
Мне нужно показать комментарии для current_user
Хорошо, добавьте комментарии пользователя в объекты пользователя.
Кстати, денормализация обычно асинхронный процесс, потому что запись одного объекта во многие коллекции может привести к проблемам с производительностью записи.
Надеюсь, мой ответ даст вам несколько идей.