我尝试通过
更新集合中的数组Configs.update({_id:this.parent._id, "cles.cle":this.context.cle},
{$set: {"cles.$.alias": $(e.target).val()}});
但是我收到了这个错误
未捕获错误:不允许。不受信任的代码只能按ID更新文档。 [403]
如何更新数组,客户端(minimongo)中的数据?
答案 0 :(得分:1)
当您在客户端上致电collection.update
时,选择器可能仅按其_id
字段指出文档。因此,您必须执行类似collection.update({_id: "your id"}, <updates>})
的操作(或使用备用_id
选择器:collection.update("your id", <updates>})
)。
答案 1 :(得分:1)
好的,我想我终于理解了你问题的基础。看起来Meteor正在处理您在选择标准中对数组元素的子选择,以试图规避仅允许单个记录更新的策略。这感觉就像流星中的一个错误。
可能的解决方法:
var cles = Configs.findOne({_id:this.parent._id}).cles;
cles
数组Configs.update({_id:this.parent._id},{$set: {cles: cles});
感觉笨拙。另一种解决方案是创建一个服务器方法来在服务器端执行此操作。如果您的数组可能很大,那会更好。