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

Atualizar campo único no MongoDB em um único documento incorporado


Você provavelmente pode usar o operador posicional para identificar o elemento da matriz:

Então talvez algo como:
User.collection.update(
    { :_id => user.id, :matches => BSON::ObjectId('4e40238dbc9f6ec5a6000eed') },
    { :$set => { 'alert.matches.$' => matches } }
)

Mas, como observa Sergio, é difícil destrinchar a estrutura de seus documentos com base nas informações limitadas em sua pergunta.

Parece que mais informações chegaram depois que eu respondi e se parece com:
{ :$set => { 'alerts.$.matches' => ... } }

é o que você precisa. E você precisará incluir :matches na consulta para que $ tem algo a que se referir.