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

Aggiorna un documento secondario contenuto in un array contenuto in un documento MongoDB

Puoi aggiornare un elemento dell'array esistente usando un $set operazione che utilizza il $ posizionale per identificare l'elemento dell'array abbinato nel selettore in questo modo:

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

Questo sostituirà lo schema corrispondente elemento con quello incluso nel $set oggetto.

Se vuoi aggiornare solo i singoli campi dello schema di destinazione elemento, puoi usare la notazione del punto. Ad esempio, per aggiornare solo la size e name campi:

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