如何$unwind一个集合内的一个集合在MongoDB



我有一个集合"课程"使用这样的结构:

{ 
  Lessons: [ 
  {
     Title: 'xxx',
     Contents: [ 
     {
       Title: 'yyy',
     },
     ...
     ]
  },
  ...
  ]
}

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

我设法$unwind所有的内容:

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

但是我不能只过滤每个Content中的title

你很接近了。如果我没有弄错你的要求,你只需要添加一个投影:

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

相关内容

  • 没有找到相关文章

最新更新