I eşleştirme alanları içten 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:
değil gerçek veri ancak şema tam olarak aynı olan bir MongoDB
Requirement:
tek sorgu kullanarak öğrencilerin dizinin içindeki studentId
ve students.id
(id maçları belgeyi bulma.
Ben
db.data.aggregate({$match:{"students.id":"$studentId"}},{$group:{_id:"$student"}});
Result:
Boş Array altında olursa gibi kod denedim ben {"students.id": "$ studentId"} yerine {"students.id" ifadesini kullanın: 33} ikinci belgeyi yukarıda gösterilen jsonda döndürüyor.
Tek bir sorgu kullanarak bu senaryonun belgelerini almak mümkün mü? Maalesef bu imkansız
İyi çalışıyor, açıklama için teşekkürler. +1 – karthick