当我选择按模式分离集合或包括?

时间:2017-10-16 06:23:22

标签: mongodb mongoose

在Mongolian db中,何时按模式分隔集合以及何时将它们放入一个集合中?拥有更多馆藏有什么缺点?

1 个答案:

答案 0 :(得分:0)

您应该根据应用程序的访问策略设计MongoDB集合。

一般来说,如果符合以下条件,你应该去嵌入

  • 始终在" main"检索数据。如果 相反,你总是只检索部分数据(让我们说出coll1中的内容),但很少需要嵌入数据(coll2),然后嵌入就不会那么好。
  • 嵌入式数据不经常受到修改。如果您在多个文档中嵌入了相同的对象,则在发生更改并出现一致性问题时,必须对所有文档进行更新。
  • 嵌入数据的基数不是太大。记住MongoDB文档的最大大小是16MB。所以这取决于你想要嵌入到文档中的内容。例如,如果每个文档可以有100K嵌入对象,则必须拆分集合
  • 数据完整性可能是一个问题:将数据嵌入到" main" docs,您可以利用文档级锁定(如果您使用的是有线Tiger存储引擎)。否则,如果您在并发系统中,使用两个集合设计,您必须自己在应用程序级别处理锁定机制。