Sto avendo seguente documento in MongoDBcampi corrispondenti internamente 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:
non un dati effettivi, ma lo schema è esattamente lo stesso.
Requirement:
Trovare il documento che corrisponde al studentId
e students.id
(id all'interno della matrice studenti utilizzando singola query.
Ho provato il codice come sotto
db.data.aggregate({$match:{"students.id":"$studentId"}},{$group:{_id:"$student"}});
Result:
Array vuoto, se i sostituire {"students.id": "$ studentId"} a {"students.id": 33} si sta restituendo il secondo documento nell'invisibile sopra indicato
È possibile ottenere i documenti per questo scenario utilizzando una singola query?
Funziona bene, grazie per la spiegazione. +1 – karthick