私は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 (idに一致するドキュメントを検索します。students.id
以下のようなコードを試しました
db.data.aggregate({$match:{"students.id":"$studentId"}},{$group:{_id:"$student"}});
Result:
空の配列。{"students.id":"$studentId"} を {"students.id":33} に置き換えると、上記の json の 2 番目のドキュメントが返されます。
単一のクエリを使用して、このシナリオのドキュメントを取得することは可能ですか?