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

Mettre à jour un sous-document contenu dans un tableau contenu dans un document MongoDB

Vous pouvez mettre à jour un élément de tableau existant en utilisant un $set opération qui utilise le $ opérateur positionnel pour identifier l'élément de tableau correspondant dans le sélecteur comme ceci :

Documents.update(
  {_id: Session.get("current_document_id"), 'schema.name': "first_name"}, 
  {$set: {'schema.$': {type: "text", size: 7, name: name, label: "First Name2"}}}
);

Cela remplacera le schema correspondant élément avec celui inclus dans le $set objet.

Si vous souhaitez uniquement mettre à jour des champs individuels du schema ciblé élément, vous pouvez utiliser la notation par points. Par exemple, pour ne mettre à jour que la size et name champs :

Documents.update(
  {_id: Session.get("current_document_id"), 'schema.name': "first_name"}, 
  {$set: {'schema.$.size': 7, 'schema.$.name': name}}
);