Der $-Operator
wird im Aktualisierungsoperatorobjekt verwendet (2. Argument für update
), nicht der Abfrageselektor (1. Argument). In der Abfrageauswahl sollten Sie in der Lage sein um aList.bList.cList._id
zu verwenden , und dies würde aList.$.bList.$.cList
lassen entsprechen dem ersten übereinstimmenden Element der eingebetteten cList
im Update-Operator.
Bearbeiten:
Verschachtelte Position ($
) wird der Operatorabgleich derzeit nicht unterstützt. Dieses Ticket
zeigt die Nachfrage nach genau dieser Funktion seit langer Zeit (2010!), aber anscheinend hat niedrigerer Code innerhalb von mongoDB dies nicht möglich gemacht. Es scheint, dass 10gen hofft, diese Funktion in der Version 2.6 zu erhalten.
Es sieht so aus, als müssten Sie separat abfragen und aktualisieren, um dies mit Ihrem aktuellen Schema zu erreichen, oder vielleicht Ihr Schema so ändern, dass es flacher wird.