设计mongodb数据模型:嵌入与引用

时间:2019-05-30 11:23:22

标签: mongodb

我正在编写一个应用程序,该应用程序收集多个社交网络帐户中用户的统计信息。我有一个用户集合,我想存储每个用户的统计信息。

现在,我有两个选择:

  1. 创建一个存储用户统计文档的集合,并将引用对象添加到每个用户文档中,以将其链接到统计文档集中的相应文档。
  2. 将统计文档嵌入每个用户文档中。

除了查询性能(我不太担心):

  1. 每种方法的利弊是什么?
  2. 如果我选择使用引用而不是将信息嵌入用户文档中,应该考虑什么?

1 个答案:

答案 0 :(得分:0)

数据的形状由应用程序本身确定。

在处理用户数据时,很有可能需要统计信息。

关于放入文档内容的决定很大程度上取决于应用程序如何使用数据。

一起用作用户文档的数据是预先连接或嵌入的很好的选择。

此方法的局限性之一是文档的大小。最多为16 MB。

另一种方法是在多个集合之间拆分数据。

此方法的局限性之一是MongoDB中没有约束,因此也没有外键约束。

数据库不保证数据的一致性。作为程序员,您应该照顾自己的数据没有孤儿吗?

可以通过应用查找运算符来合并来自多个集合的数据。但是,集合是磁盘上的一个单独文件,因此在多个集合中进行搜索意味着从多个文件中进行搜索,这可能很慢。

通常来说,嵌入式数据是更可取的方法。