ノードとMongoアプリケーションでこのループが発生しています。 console.log
はすべての '製品'名を正しく出力しますが、通常rank
はデータベースに正しく設定されていません。面白いことに、プログラムにデバッグブレークポイントを置き、ゆっくりとステップ実行すればうまくいきます。何らかの競合状態が発生しているかどうか、そしてこの作業を行うための最良の解決策は何か?NodeJSとMongoDBのアップデートが動作しない
async.each(sortedProductsArray, function (product, callback) {
console.log(product.name);
var query = {
productNo: product.productNo
};
var index = sortedProductsArray.indexOf(product)+1;
var update = {
// give it a rank
$set: { 'rank': index }
};
// main products array
products.update(query, update, callback);
});
私は少し些細なもの私はそれがおそらく少し誤解していることを認識します。ループされた配列は別のソートされた配列でなければなりません – timhc22
いずれにしても、indexOfではなくforEachOfを使用する必要があります - これは非同期ループ内のループなので - indexOfは大きなインデックスでも遅くなる –
クールな感謝、私はそれを変更します! – timhc22