MongoDB-query mit elemMatch für verschachtelte array-Daten

Ich habe ein Dokument mit verschachtelten array-Daten. Ich habe versucht, hoffnungslos das filtern der Daten mit $elemMatch aber ich kann nicht herausfinden, warum es nicht funktioniert.

{
'id' : 1,
'name' : 'test',
'modules' : [
    {
        name: 'foo',
        mandatory: false,
        group: [
            {
                name: g1
            }]
    },
    {
        name: 'bar',
        mandatory: false,
        group: [
            {
                name: g2
            }]
    }]
}

Versuchte ich mit dieser Abfrage:

db.test.find(
{
  modules: {
            $elemMatch: {
                 name: "foo",
            }
  }
}

Aber es hält Rückkehr alle Module. Wenn ich mandatory: true es gibt nichts, das scheint angezeigt, dass es funktioniert. Irgendeine Idee, was ich falsch mache? Danke!

  • Die Abfrage ist sehr einfach, aber was ist mit updates?
InformationsquelleAutor Phil | 2013-12-11
Schreibe einen Kommentar