你使用mongodb时需要规范化你的数据库吗?

nsa*_*719 7 database mongodb database-normalization

我正在制作一个Web应用程序并使用mongodb作为我的数据库.但我是mongodb的新手,我只想知道我是否还需要像其他人在使用RDBMS时那样规范化我的数据库.在制作表或数据库之前,它是规范化的.

Phi*_*ipp 9

像使用关系数据库那样规范化数据在MongoDB中通常不是一个好主意.

关系数据库中的规范化只有在表之间的JOIN相对便宜的前提下才可行.该$lookup聚合运营商提供一些有限的JOIN功能,但它不与分片收集工作.因此,通常需要通过多个后续数据库查询来模拟连接,这非常慢(有关更多信息,请参阅MongoDB和JOINs的问题).

因此,您应该设计数据库,以便通过查询单个集合来满足最常见的查询,即使这意味着您将在数据库中拥有一些冗余.模型1的好工具:n关系通常是子对象的数组.但是,尽量避免随着时间的推移无限增长的对象,因为在这种情况下,它们将在文件中移动很多,这将影响写入性能.

  • 如果somwone正在阅读此内容,可以在MongoDb中完成联接操作 (2认同)
  • @MohitAngiras 当我写这个答案时,$lookup 操作符在 2014 年还不存在。感谢您让我注意这个答案。我更新了它。 (2认同)