使用MongoDB聚合数据

使用MongoDB聚合数据,mongodb,join,aggregation-framework,Mongodb,Join,Aggregation Framework,我正在编写一个基于MongoDB的bug跟踪后端,我面临一个问题: 我的主要收藏有: 用户:表示系统中的用户 项目:表示一个项目(每个项目包含一个允许用户数组-对用户的引用) bug:bug列表(每个bug都包含对父项目的引用) 在主页上,我想显示当前用户参与的所有项目中最新的10个bug 似乎现在我必须首先查询用户所参与的项目列表,然后使用此列表(使用$in操作符)查询属于这些项目的最新10个bug 我想知道是否有更好的方法来表示我的数据,使这个查询更简单,或者这是唯一合理的解决方案 谢谢

我正在编写一个基于MongoDB的bug跟踪后端,我面临一个问题:

我的主要收藏有:

  • 用户:表示系统中的用户
  • 项目:表示一个项目(每个项目包含一个允许用户数组-对用户的引用)
  • bug:bug列表(每个bug都包含对父项目的引用)
在主页上,我想显示当前用户参与的所有项目中最新的10个bug

似乎现在我必须首先查询用户所参与的项目列表,然后使用此列表(使用$in操作符)查询属于这些项目的最新10个bug

我想知道是否有更好的方法来表示我的数据,使这个查询更简单,或者这是唯一合理的解决方案


谢谢

一种选择是使用嵌入文档对数据进行不同的建模,即将
bug
作为
project
集合中的子文档,反之亦然。更多详细信息。如果您的用例不允许这种建模,那么我想没有其他选择了。@AnandJayabalan可能有很多bug,因此我无法将它们嵌入到项目本身中-它们必须存在于单独的集合中。