为什么Meteor会更新覆盖文档中的现有属性?

时间:2012-05-30 23:13:44

标签: javascript meteor

Meteor更新对我有用。

如果我跑:

Countries.insert({name: 'China'});

我在我的国家/地区收藏中收到一份新文件,名称为“中国” - 正如您所期望的那样。

但是当我跑的时候:

Countries.update({name: 'China'}, {population: '1 billion'});

该文档现在有一个人口属性,但它失去了名称属性。它绝对是同一个文件 - 相同的身份。

我以为我遵循这种语法:

collection.update(selector, modifier, [options], [callback])
直接离开Meteor Docs。

我还在更新命令中使用文档的id字符串(而不是选择器)尝试了更新,但同样的事情发生了。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

这有用吗

Countries.update({ name: 'China' } , { $set : { population: '1 billion' }});

如果doc尚不存在,则添加key:value。我还成功地使用以下内容为多个文档添加了值。

Countries.update({ continent: 'Asia' } , { $set : { food: 'delicious' } } , { multi : true } );

这将增加食物:亚洲大陆的所有国家都很美味。