具有关系的Mongodb

具有关系的Mongodb,mongodb,Mongodb,我是mongodb文档库的新手,但我想知道什么时候会使用嵌入式关系,什么时候会使用引用?定义见 我的猜测是,如果关系只在一个地方使用,它应该被嵌入,否则使用引用 这个决定的含义是什么?好吧,你通过的链接非常清楚地说明: 通常,使用规范化数据模型: 嵌入时会导致数据重复,但不会 提供足够的读取性能优势,以超过 重复的影响。 表示更复杂的多对多关系。 为大型分层数据集建模。 我认为,在大多数情况下,MongoDB都经过了优化,可以处理对嵌入式数据的查询。它就是为了做到这一点而构建的,我相信Mongo

我是mongodb文档库的新手,但我想知道什么时候会使用嵌入式关系,什么时候会使用引用?定义见

我的猜测是,如果关系只在一个地方使用,它应该被嵌入,否则使用引用


这个决定的含义是什么?

好吧,你通过的链接非常清楚地说明:

通常,使用规范化数据模型:

嵌入时会导致数据重复,但不会 提供足够的读取性能优势,以超过 重复的影响。 表示更复杂的多对多关系。 为大型分层数据集建模。 我认为,在大多数情况下,MongoDB都经过了优化,可以处理对嵌入式数据的查询。它就是为了做到这一点而构建的,我相信MongoDB的全部目的就是消除连接和规范化。您应该尝试将尽可能多的数据放入文档本身

本页还说明了使用参考文献的某些缺点,如果通过嵌入也可以实现这一点,您可能会发现通常情况是这样的:

但是,客户端应用程序必须发出后续查询来解析引用。换句话说,规范化数据模型可能需要更多到服务器的往返


此外,如果使用太多引用而不是嵌入数据,则可能会失去文档提供的保证一致性优势,因为对文档的操作是原子操作,而其他操作则不是原子操作。

您是否尝试过四处搜索,有关此主题的问题很多,包括: