operator $
jest do użycia w obiekcie operatora aktualizacji (2. argument do update ), nie selektor zapytania (1. argument). W selektorze zapytań powinnaś umieć aby użyć aList.bList.cList._id , a to pozwoliłoby aList.$.bList.$.cList odpowiadają pierwszemu pasującemu elementowi osadzonego cList w operatorze aktualizacji.
Edytuj:
Zagnieżdżone położenie ($ ) dopasowanie operatorów nie jest obecnie obsługiwane. Ten bilet
pokazuje zapotrzebowanie na dokładnie tę funkcję od dawna (2010!), ale najwyraźniej kod niższego poziomu w ramach mongoDB nie umożliwił tego. Wygląda na to, że 10gen ma nadzieję na uzyskanie tej funkcji w wydaniu 2.6.
Wygląda na to, że będziesz musiał osobno wysyłać zapytania i aktualizować, aby osiągnąć to z bieżącym schematem, lub być może zmienić schemat, aby był bardziej płaski.