MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Aktualisieren Sie ein einzelnes Feld in MongoDB in einem einzigen eingebetteten Dokument

Sie können wahrscheinlich den Positionsoperator verwenden um das Array-Element zu identifizieren:

Also vielleicht so etwas wie:

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

Aber wie Sergio feststellt, ist es schwierig, die Struktur Ihrer Dokumente anhand der begrenzten Informationen in Ihrer Frage herauszuarbeiten.

Anscheinend sind weitere Informationen eingegangen, nachdem ich geantwortet habe, und es sieht so aus:

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

ist das, was Sie brauchen. Und Sie müssen :matches einfügen in der Abfrage so, dass $ hat etwas zu verweisen.