Documents.update(
{_id: Session.get("current_document_id")},
{$push: {schema: {type: "text", size: size, name: name, label: label}}}
);
上記のクエリはMeteorコレクションであり、「Documents.update」はMongoDBドキュメント(http://docs.mongodb.org/manual/applications/update/)の「db.documents.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"}