Du kan uppdatera ett befintligt arrayelement med en $set
operation som använder $
positionsoperator för att identifiera arrayelementet som matchas i väljaren så här:
Documents.update(
{_id: Session.get("current_document_id"), 'schema.name': "first_name"},
{$set: {'schema.$': {type: "text", size: 7, name: name, label: "First Name2"}}}
);
Detta kommer att ersätta det matchade schema
element med det som ingår i $set
objekt.
Om du bara vill uppdatera enskilda fält i det riktade schema
element kan du använda punktnotation. Till exempel att bara uppdatera size
och name
fält:
Documents.update(
{_id: Session.get("current_document_id"), 'schema.name': "first_name"},
{$set: {'schema.$.size': 7, 'schema.$.name': name}}
);