Действительно ли это действующее заявление?
Я так не считаю. Я считаю, что чрезмерное внедрение и избегание отношений - две из самых распространенных ошибок начинающего с MongoDB. Что еще более важно, не имеет значения, как данные структурированы. Важно то, что вам нужно для запроса, и знаете ли вы это заранее.
Реляционные базы данных хорошо сочетаются с ограничениями запросов по различным таблицам: «Что есть клиенты, которые живут в городах, где мы работаем в большинстве магазинов, купленных в дни, когда солнце сияло?» База данных SQL может хорошо ответить на этот вопрос. С помощью правильных индексов вы можете быстро выполнять целые классы этих запросов. Это особенно полезно, если вы не знаете вопросов, которые будут заданы «во время компиляции», так сказать.
К сожалению, это связано с ценой сложности: в зависимости от того, какие вопросы вы задаете, результаты имеют разную структуру, но типичное приложение LOB в основном должно извлекать объекты и хранить их обратно. Кроме того, создание SQL-запросов не является тривиальным, поэтому вам придется либо написать их вручную, либо использовать сложную часть программного обеспечения, объектно-реляционного-mapper, которая создает запросы, собирает объекты и сшивает все вместе. Предотвращение этой чудовищной части программного обеспечения и сложности является основной причиной использования MongoDB с моей точки зрения. Следовательно, идея объектно-документальных карт обычно кажется мне подозрительной.
Обсуждение блокировок, транзакций, «масштаб» и т. Д. В основном ортогонально.
Если вы знаете свои вопросы заранее, MongoDB может cope with relations relatively well, и вы можете избежать большинства транзакций. Если вам нужны запросы бизнес-аналитики, вам, вероятно, будет лучше с реляционной БД.
Хорошо, что mongodb не является sql, его базой данных и не имеет объединений. – Abhishek
Когда ваши данные являются * ничего, кроме * отношений, вы можете посмотреть в базы данных графов, такие как Neo4j, которые охватывают отношения даже больше, чем классические реляционные базы данных. – Philipp