Обновите вложенный документ, содержащийся в массиве документа MongoDB
Documents.update(
{_id: Session.get("current_document_id")},
{$push: {schema: {type: "text", size: size, name: name, label: label}}}
);
Приведенный выше запрос представляет собой коллекцию Meteor, и «Documents.update» отображается на «db.documents.update» в документации MongoDB (http://docs.mongodb.org/manual/applications/update/). С помощью этого запроса я могу добавить документ схемы внутри основного документа. Субдокументы хранятся в массиве:
Document:
schema:
array:
{type: "text", size: 6, name: "first_name", label: "First name"},
{type: "text", size: 6, name: "last_name", label: "Last name"}
Я хочу изменить атрибуты имени и размера вложенных документов с помощью этого запроса:
Documents.update(
{_id: Session.get("current_document_id"), 'schema' : "first_name"},
{$push: {schema: {type: "text", size: 7, name: name, label: "First Name2"}}}
);
Но эта операция добавляет новый объект непосредственно в схему и удаляет массив:
Document:
schema:
{type: "text", size: 7, name: "first_name", label: "First Name2"}
Как я могу изменить запрос, чтобы изменить атрибуты, избегая этой проблемы? После запроса я хотел бы получить этот документ:
Document:
schema:
array:
{type: "text", size: 7, name: "first_name", label: "First name2"},
{type: "text", size: 6, name: "last_name", label: "Last name"}