MongoDB是否不适用于关系数据?

MongoDB是否不适用于关系数据?,mongodb,Mongodb,我刚刚在网站(Ruby的ODM)上读过这篇文章 如果您发现您的数据库中有更多的关系关联 与嵌入式应用程序相比,建议您不要使用 MongoDB并移动到关系数据库 这是一个有效的语句吗?MongoDB是一个面向文档的数据库。此解决方案中不包括交易和关系。尽管存在这一限制,但它提供了一个更具可伸缩性的环境 您应该转到以获取有关此解决方案的更多信息 这是一个有效的声明吗 我不这么认为。我相信过度嵌入和避免关系是MongoDB初学者最常见的两个错误。更重要的是,数据的结构如何并不重要。重要的是你需要询问什

我刚刚在网站(Ruby的ODM)上读过这篇文章

如果您发现您的数据库中有更多的关系关联 与嵌入式应用程序相比,建议您不要使用 MongoDB并移动到关系数据库


这是一个有效的语句吗?

MongoDB是一个面向文档的数据库。此解决方案中不包括交易和关系。尽管存在这一限制,但它提供了一个更具可伸缩性的环境

您应该转到以获取有关此解决方案的更多信息

这是一个有效的声明吗

我不这么认为。我相信过度嵌入和避免关系是MongoDB初学者最常见的两个错误。更重要的是,数据的结构如何并不重要。重要的是你需要询问什么,以及你是否事先知道

关系数据库擅长在不同的表上任意组合查询约束:“生活在我们经营的城市中的大多数商店的客户在阳光普照的日子里买了什么?”SQL数据库可以很好地回答这个问题。有了正确的索引,您可以使这些查询的整个类变得快速。可以说,如果您不知道“编译时”将要问的问题,那么这一点特别有用

不幸的是,这是以复杂性为代价的:根据您提出的问题,结果具有不同的结构,但您典型的LOB应用程序主要需要获取对象并将其存储回去。另外,创建SQL查询也不是一件小事,因此您要么手工编写,要么使用一个复杂的软件,一个对象关系映射器,创建查询、组装对象并将所有内容缝合在一起。从我的观点来看,避免这一庞大的软件和复杂性是使用MongoDB的一个关键原因。因此,对我来说,对象文档映射器的想法听起来很可疑

锁、事务、“规模”等的讨论基本上是正交的


如果您事先知道您的查询,MongoDB可以,而且您可以避免大多数事务。如果您需要商业智能查询,最好使用关系数据库。

mongodb不是sql,它是数据库,它没有连接当您的数据只是关系时,你可以研究像Neo4j这样的图形数据库,它比经典的关系数据库更包含关系。是的,我知道它是什么,你可以建立集合关系。但是,如果您有许多相互参考的顶级收藏,这是一个好的选择吗?我认为使用Mongo,最佳实践是为您的数据设计一个新的模型。对于多个集合之间的关系,您应该更喜欢关系DBI要强调的是,通过适当的建模和相应的查询和/或聚合,交易几乎总是可以避免的。此外,即使是上面提到的那些野生查询,也可以使用各种技术来实现,尽管不象SQL那么容易。但是,正如mnemosyn正确地提到的,除了那些边缘情况,其他一切都变得更容易,在某些情况下,在很大程度上。