Mongodb与人际关系

时间:2014-07-30 11:33:50

标签: mongodb

我是文档商店(mongodb)的新手,但想知道何时使用嵌入式关系以及何时使用引用?如http://docs.mongodb.org/manual/core/data-modeling-introduction/

中所定义

我的猜测是,如果关系只在一个地方使用它应该嵌入其他人使用引用吗?

这个决定的含义是什么?

1 个答案:

答案 0 :(得分:0)

嗯,你经历过的链接确实很清楚:

  

通常,使用标准化数据模型:

     
      
  1. 嵌入时会导致数据重复,但不会   提供足够的读取性能优势来超过   重复的含义。
  2.   
  3. 代表更复杂的多对多关系。
  4.   
  5. 为大型分层数据集建模。
  6.   

我认为虽然对于大多数情况,MongoDB已经过优化,可以处理嵌入数据的查询。它的构建是为了做到这一点,MongoDB(我相信)的重点是消除连接和规范化。您应该尝试尽可能多地在文档中放入数据。

该页面还说明了使用引用的某些缺点,当嵌入时可以实现相同的目的(您可能会发现这种情况经常发生):

  

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

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