首页 > 解决方案 > 在 MongoDB 中执行子文档查询时返回父文档元素

问题描述

我的数据库看起来像这样......

[ 
  { School: "Princeton",
    Classes: [ {
       Code: "CSC131",
       Teachers: [{
          Name: "Brown",
          Reviews: [{
             _id: "123123123"
             Difficulty: "very hard"
             (etc...)
          }]
       }]
   }]
 }
]

db 中的每个数组中都会有很多文档,但是为了简单起见,我只包括了一个学校、一个班级、一个老师和一个评论。这正是我希望查询返回的内容。我的查询如下所示:

Schools.find(
        {
          "Classes.Teachers.Reviews": { $elemMatch: { _id: usersReview } },
        },
        { "Classes.Teachers.Reviews.$": 1 }
      )

即使我必须遍历每个班级以检查 id 是否与给定的 id 匹配,这也可以正常工作,但不会返回学校名称,并且还会返回每个班级的所有不同教师及其评论。我希望它准确地返回我上面的示例数据库显示的内容。我希望仍然返回学校、班级代码、教师姓名和评论。请帮我!谢谢!

标签: node.jsmongodbmongoose

解决方案


推荐阅读