Documents.update( {_id: Session.get("current_document_id")}, {$push: {schema: {type: "text", size: size, name: name, label: label}}} );
The above query is a collection of Meteor, and "Documents.update" to "db.documents.update" in the MongoDB documentation (http://docs.mongodb.org/manual/applications/update/). With this query, I can add a schema document inside the main document. Subdocuments are stored in an array:
Document: schema: array: {type: "text", size: 6, name: "first_name", label: "First name"}, {type: "text", size: 6, name: "last_name", label: "Last name"}
I want to change the name and size attributes of the attached documents with this query:
Documents.update( {_id: Session.get("current_document_id"), 'schema' : "first_name"}, {$push: {schema: {type: "text", size: 7, name: name, label: "First Name2"}}} );
But this operation adds a new object directly according to the scheme and deletes the array:
Document: schema: {type: "text", size: 7, name: "first_name", label: "First Name2"}
How to modify a query to change attributes avoiding this problem? Upon request, I would like to have this document:
Document: schema: array: {type: "text", size: 7, name: "first_name", label: "First name2"}, {type: "text", size: 6, name: "last_name", label: "Last name"}