我有一个集合"课程"使用这样的结构:
{
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" } }
)