MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Aktualisieren Sie ein Filialdokument, das in einem Array enthalten ist, das in einem MongoDB-Dokument enthalten ist

Sie können ein vorhandenes Array-Element mit einem $set aktualisieren Operation, die $ verwendet Positionsoperator zum Identifizieren des im Selektor gefundenen Array-Elements wie folgt:

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

Dadurch wird das übereinstimmende schema ersetzt -Element mit demjenigen, das in $set enthalten ist Objekt.

Wenn Sie nur einzelne Felder des Ziel-schema aktualisieren möchten -Element können Sie die Punktnotation verwenden. Zum Beispiel, um nur die size zu aktualisieren und name Felder:

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