MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mettre à jour un seul champ dans MongoDB dans un seul document intégré

Vous pouvez probablement utiliser l'opérateur positionnel pour identifier l'élément du tableau :

Alors peut-être quelque chose comme :

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

Mais comme le note Sergio, il est difficile de démêler la structure de vos documents sur la base des informations limitées contenues dans votre question.

On dirait que plus d'informations sont arrivées après que j'ai répondu et ça ressemble à :

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

est ce dont vous avez besoin. Et vous devrez inclure :matches dans la requête afin que $ a quelque chose à quoi se référer.