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

7
%Vor%

Die obige Abfrage ist eine Meteor-Sammlung, und "Documents.update" wird in der MongoDB-Dokumentation (http://docs.mongodb.org/manual/applications/update/) der Datei "db.documents.update" zugeordnet. Mit dieser Abfrage kann ich ein Schemadokument innerhalb des Hauptdokuments hinzufügen. Filialdokumente werden in einem Array gespeichert:

%Vor%

Ich möchte die Attribute name und size der Filialdokumente mit dieser Abfrage ändern:

%Vor%

Aber diese Operation hängt ein neues Objekt direkt unter dem Schema an und löscht das Array:

%Vor%

Wie kann ich die Abfrage ändern, um die Attribute zu ändern, um dieses Problem zu vermeiden? Nach der Abfrage möchte ich dieses Dokument haben:

%Vor%     
rtacconi 08.12.2012, 11:38
quelle

1 Antwort

19

Sie können ein vorhandenes Array-Element mit einer Operation $set aktualisieren, die $ positional-Operator, um das im Selektor gefundene Array-Element wie folgt zu identifizieren:

%Vor%

Dies ersetzt das übereinstimmende Element schema mit dem Element $set .

Wenn Sie nur einzelne Felder des Zielelements schema aktualisieren möchten, können Sie die Punktnotation verwenden. Um beispielsweise nur die Felder size und name zu aktualisieren:

%Vor%     
JohnnyHK 08.12.2012, 16:48
quelle

Tags und Links