私は流星で始まり、Mongoの助けが必要です。私はリストに表示している名前のコレクションを持っていて、他の基準に基づいてデータベースの特定のエントリの1つの変数を更新できるようにしたい。基本的には、次のようにします。Meteor/Mongo:コレクション内の特定の要素を見つけて更新する
特性A =真でB =真であるすべてのエントリについて、特性Cを偽に変更します。
これまで、私はMongoがコレクションの要素に対して "for each"ループを処理する方法と、条件AとBが保持されているかどうかを確認するために各要素のチェックを試みてきました。そしてcollection.update要素、{C:偽})。これは私が思ったよりもはるかに問題が多いことが分かります。私は、この(ダミー変数名を使用して)のような何かをしたい:
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複数の行を編集するには、0,1の代わりに{multi:true}を3番目のパラメータとして設定する必要があります(meteor docs、http://docs.meteor.com/#updateを参照)。 –