У меня есть следующий документ в 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 и students.id(id внутри массива студентов, с помощью одного запроса.
Я пробовал код, как показано ниже
db.data.aggregate({$match:{"students.id":"$studentId"}},{$group:{_id:"$student"}});
Result: Пустой массив. Если я заменю {"students.id":"$studentId"} на {"students.id":33}, он вернет второй документ в показанном выше json.
Можно ли получить документы для этого сценария с помощью одного запроса?