MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Aggiorna un singolo campo in MongoDB in un unico documento incorporato

Probabilmente puoi utilizzare l'operatore posizionale per identificare l'elemento dell'array:

Quindi forse qualcosa come:

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

Ma come osserva Sergio, è difficile definire la struttura dei tuoi documenti sulla base delle informazioni limitate nella tua domanda.

Sembra che siano arrivate più informazioni dopo che ho risposto e che sia:

{ :$set => { 'alerts.$.matches' => ... } }

è ciò di cui hai bisogno. E dovrai includere :matches nella query in modo che $ ha qualcosa a cui fare riferimento.