sql >> Databasteknik >  >> NoSQL >> MongoDB

Uppdatera ett enda fält i MongoDB i ett enda inbäddat dokument

Du kan förmodligen använda positionsoperatorn för att identifiera arrayelementet:

Så kanske något i stil med:

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

Men som Sergio noterar är det svårt att urskilja strukturen på dina dokument baserat på den begränsade informationen i din fråga.

Det verkar som att mer information kom in efter att jag svarat och det ser ut som:

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

är vad du behöver. Och du måste inkludera :matches i frågan så att $ har något att referera till.




  1. Redis serviceStack poolad anslutningsklient

  2. MongoDB geospatialt index på en array (multikey + geospatial)

  3. Hitta största dokumentstorlek i MongoDB

  4. MongoDB startar inte efter serverkrasch