我有一个收藏品。此集合中的每个文档都有一个视图计数器,每当没有查看该项目的用户访问其页面时,该计数器都会递增。
目前,我正在每个项目文档中存储一组ipaddresses,以便我可以跟踪谁查看了它,并且只在新用户访问时增加了视图计数器。
但我担心这可能会影响性能,因为我无法检索项目文档,也无法获取IP阵列。
我希望这个数组介于1 - 5000之间。
我是否会更好地拥有一个带有项目ID和数组的单独集合,或者我是否超出潜在的性能风险?
答案 0 :(得分:0)
通常,嵌入为读取操作提供了更好的性能,以及在单个数据库操作中请求和检索相关数据的能力。嵌入式数据模型可以在单个原子写操作中更新相关数据。
但是,在文档中嵌入相关数据可能会导致文档在创建后增长。文档增长会影响写入性能并导致数据碎片化
由于您的数组大小会增加嵌入您的文档不是一个好选择。 您可能想要One-to-One Relationships