MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Atualizar um subdocumento contido em uma matriz contida em um documento MongoDB


Você pode atualizar um elemento de array existente usando um $set operação que usa o $ operador posicional para identificar o elemento da matriz correspondente no seletor assim:
Documents.update(
  {_id: Session.get("current_document_id"), 'schema.name': "first_name"}, 
  {$set: {'schema.$': {type: "text", size: 7, name: name, label: "First Name2"}}}
);

Isso substituirá o schema correspondente elemento com o incluído no $set objeto.

Se você deseja atualizar apenas campos individuais do schema de destino elemento, você pode usar a notação de ponto. Por exemplo, para atualizar apenas o size e name Campos:
Documents.update(
  {_id: Session.get("current_document_id"), 'schema.name': "first_name"}, 
  {$set: {'schema.$.size': 7, 'schema.$.name': name}}
);