$-operatorn
är för användning i uppdateringsoperatorobjektet (andra argument till update
), inte frågeväljaren (första argumentet). I frågeväljaren bör du kunna för att använda aList.bList.cList._id
, och detta skulle låta aList.$.bList.$.cList
motsvarar det första matchande elementet i den inbäddade cList
i uppdateringsoperatören.
Redigera:
Kapslad positionell ($
) operatörsmatchning stöds inte för närvarande. Denna biljett
visar efterfrågan på exakt den här funktionen för länge sedan (2010!), men uppenbarligen har kod på lägre nivå inom mongoDB inte gjort detta möjligt. Det verkar som att 10gen är hoppfull att få den här funktionen i version 2.6.
Det verkar som att du måste fråga och uppdatera separat för att uppnå detta med ditt nuvarande schema, eller kanske ändra ditt schema så att det blir mer platt.