MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Operador $ MongoDB


O operador $ é para uso no objeto operador de atualização (2º argumento para update ), não o seletor de consulta (1º argumento). No seletor de consulta, você deve ser capaz para usar aList.bList.cList._id , e isso permitiria que aList.$.bList.$.cList corresponde ao primeiro elemento correspondente da cList incorporada no operador de atualização.

Editar:

Posicional aninhado ($ ) a correspondência de operadores não é suportada atualmente. Este bilhete mostra a demanda por exatamente esse recurso de muito tempo atrás (2010!), mas aparentemente o código de nível inferior dentro do mongoDB não tornou isso possível. Parece que a 10gen espera obter esse recurso na versão 2.6.

Parece que você terá que consultar e atualizar separadamente para conseguir isso com seu esquema atual, ou talvez alterar seu esquema para ser mais simples.