我在 mongodb 中有以下文档
{
"_id" : ObjectId("517b88decd483543a8bdd95b"),
"studentId" : 23,
"students" : [
{
"id" : 23,
"class" : "a"
},
{
"id" : 55,
"class" : "b"
}
]
}
{
"_id" : ObjectId("517b9d05254e385a07fc4e71"),
"studentId" : 55,
"students" : [
{
"id" : 33,
"class" : "c"
}
]
}
Note:
不是实际数据,但架构完全相同。
Requirement:
使用单个查询studentId
在学生数组中查找与and students.id
(id匹配的文档。
我已经尝试过如下代码
db.data.aggregate({$match:{"students.id":"$studentId"}},{$group:{_id:"$student"}});
Result:
空数组,如果我将 {"students.id":"$studentId"} 替换为 {"students.id":33} 它会返回上面显示的 json 中的第二个文档。
是否可以使用单个查询获取此场景的文档?