Ich habe ein Dokument mit verschachtelten Array-Daten. Ich versuchte hoffnungslos, die Daten mit $elemMatch
zu filtern, aber ich kann nicht herausfinden, warum es nicht funktioniert.
Ich habe versucht, diese Abfrage zu verwenden:
%Vor% Aber es bringt immer alle Module zurück. Wenn ich mandatory: true
verwende, gibt es nichts zurück, was darauf hindeutet, dass es funktioniert. Irgendeine Idee was mache ich falsch? Danke!
Ihre Abfrage gibt einfach alle Dokumente zurück, die ein modules
-Element mit name == 'foo'
enthalten. Um $elemMatch
zum Filtern der Ausgabe zu verwenden, müssen Sie sie verwenden im Projektionsargument des Aufrufs find
anstelle eines Teils der Abfrage:
Um beide Konzepte zu kombinieren, können Sie auf den Index des in der Abfrage übereinstimmenden Array-Elements mit $
:
Jeder Weg kehrt zurück:
%Vor% Wenn Sie andere Felder in der Ausgabe benötigen, fügen Sie sie zum Projektionsobjekt hinzu (z. B. name: 1
).
Tags und Links mongodb