2017-06-21 67 views

回答

1

在这里,你有两个选择:

  • 嵌入:那就是,包括到用户文档的其最喜爱的电影
  • 拆分集合名单:使用两个独立的集合,为用户和电影,通过编号引用他们

哪一个可供选择?

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

一般情况下,你应该去嵌入电影转换成DOC用户如果:

  • 嵌入数据(电影)时,用户信息检索总是检索。如果你总是检索用户信息,但很少你也需要电影数据,那么嵌入不会那么好。
  • 嵌入数据不经常修改
  • 基数不是太大(记得MongoDB文档的最大大小是16MB)。在这种情况下,我认为每个用户最喜欢的电影的基数可以适用于嵌入它们,但是如果仅举例来说,每个用户有100K电影,则您不得不拆分集合
  • 数据完整性可能是一个问题:嵌入到用户文档中,您可以利用文档级锁定(如果您使用的是Wired Tiger存储引擎)。否则,如果您处于并发系统中,使用这两种集合设计,您必须在应用程序级别自行处理锁定机制。
相关问题