2013-04-14 245 views
1

我是新來的流星,我不明白爲什麼會發生這種情況?我有一個名爲gameCol的集合,我試圖更新。集合中只有一個文檔符合條件。當我更新這樣的:更新流星集合

gameCol.update({started:true}, {$set:{started:false}}); 

流星拋出

Meteor.Error.prototype = new Error; at line 144 livedata_common.js 

如果我更新這樣的:

var status = gameCol.findOne({started:true}); 
gameCol.update({_id:status._id}, {$set:{started:false}}); 

一切正常。

這對我來說似乎有點奇怪,我也找不到任何可以解釋它的東西。

回答

2

引文形成documentation

不可信代碼[在客戶端上的js =]只能一次修改一個單獨的文檔,通過其_id指定。只有在檢查任何適用的允許和拒絕規則後才允許修改。

這是出於安全原因(explainations here)。所以你需要使用你的第二塊代碼。

+0

謝謝!這解釋了它。 – user1262878

+0

你現在可以只更新(status._id,...)' –