理由はわかりませんが、$set
メソッドを使用して既存のフィールドを更新しようとすると、既存のフィールドが同じコンテキストで置き換えられます。
例えば。次のフィールドを持つ既存のコレクションがあるとします。
コレクション名:Ticket
{profile: {name: "Test", placement: 1}, requestor: _id}
次のように、このコレクションにフィールドを追加/更新しようとすると:
var ticket = Meteor.tickets.findOne({_id: ticketID});
if(ticket){
Meteor.users.update(ticket, {
$set: profile: {name: "Test2", new_fields: "value"}
});
}
コレクションが更新され、名前フィールドが変更されますが、配置が削除されてなくなります。これは、フィールドを削除した場合にも当てはまりname
ます。同じ構造を何度も渡し続けることなく流星コレクションを適切に更新するにはどうすればよいでしょうか?