我从Meteor开始,需要Mongo的帮助。我有一组名称,我在列表中显示,希望能够根据其他条件更新数据库中某些条目的一个变量。基本上我想要做的是:Meteor/Mongo:查找并更新集合中的某些元素
对于特征A = true且B = true的每个条目,将特征C更改为false。
到目前为止,我一直在试图弄清楚Mongo如何处理集合元素上的“for each”循环,并且每个元素检查条件A和B是否成立,然后是collection.update(元素,{C:false})。这证明比我想象的要困难得多。我想要做这样的事情(使用哑变量名):
for (i = 0; i < collection.find().count(); i++){
if (collection[i].A===true && collection[i].B===true)
collection.update(collection[i], {$set: {C: false}});
};
我一直在围绕改变这个基本代码,但我开始感觉到我失去了一些东西基本在索引/如何收集工作蒙戈。你能索引一个这样的集合吗(如果是这样的话,这是甚至是最简单的方法来做我想做的事情?)?
您可以接受您自己的答案:-) – Rahul
只适用于匹配选择器的第一个文档。你需要。 collection.update({A:true,B:true},{$ set:{C:false}},0,1);为所有行。 –
@DavidWihl编辑多行,您需要将{multi:true}设置为第三个参数而不是0,1(请参阅流星文档,http://docs.meteor.com/#update)。所以这将是:collection.update({A:true,B:true},{$ set:{C:false}},{multi:true}) –