如何在MongoDB中展开集合中的集合?

时间:2014-05-02 16:26:37

标签: mongodb mongodb-query aggregation-framework

我有一个系列"课程"这种结构: { Lessons: [ { Title: 'xxx', Contents: [ { Title: 'yyy', }, ... ] }, ... ] }

如何使用MongoDB的聚合管道检索所有内容的标题列表?

我设法以这种方式展开所有内容:

db.Course.aggregate( { $unwind : '$Lessons' }, { $unwind : '$Lessons.Contents' } )

但我无法过滤每个内容中的标题。

1 个答案:

答案 0 :(得分:1)

你非常接近。如果我的要求正确,您只需要添加投影:

db.Course.aggregate( 
  { $unwind : "$Lessons" }, 
  { $unwind : "$Lessons.Contents" }, 
  { $project: { _id: 0, test: "$Lessons.Contents.Title" } } 
)