MongoDB / Mongoose:很多关系

时间:2014-01-03 15:28:57

标签: mongodb mongoose database

我有两个Mongoose模式PostTag,我想设计它们之间的多对多关系。我想知道哪一个是最佳的演出解决方案:

  1. 在Tag和Post模型中保留一个数组,引用另一个模式的模型(每个标签都有很多帖子在一组id中引用,反之亦然)
  2. 仅在Tag架构
  3. 中保留Post ID数组

    第二个解决方案似乎更容易实现,因为当我编辑与一个帖子相关的标签列表时,只需要修改一个数组,但同时获取属于一个标签的所有帖子时性能可能会降低

1 个答案:

答案 0 :(得分:2)

  

仅将标记ID数组保留在Post模式

我肯定会使用这个更直接的第二种解决方案。

除非您有异国情调的要求,否则您不需要让每个Tag明确跟踪Post引用。 Post文档中的Tag个引用数组的大小实际上是无限制的。这种使用模式往往会为流行文档创建存储碎片和/或性能问题,这些文档经常会超出record padding的分配记录空间。

另一方面,单个帖子中使用的标签数量不太可能随着时间的推移而发生很大变化,您可以通过在Tag Post数组中添加索引来提高此查询效果。集合。