Обновите вложенный документ, содержащийся в массиве документа 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"}

Ответы на вопрос(1)

Ваш ответ на вопрос