2016-12-31 95 views
2

我想更新多個文件,所以我必須使用循環,但下面的代碼被破壞,因爲它有多個res.json。異步mongodb調用for循環

for (i = 0; i < dateArray.length; i ++) { 
     Trucks.update({ 'data.date': dateArray[i] }, {'$set': update}, {'multi':true}, function(err,response){ 
     res.json(response); 
     }) 
    } 

我可以把res.end(),但我想,當操作完成就知道了。

如何使用異步模塊來改進它?我想知道手術何時完成。

+0

你介意使用另一個庫藍鳥和承諾,而不是回調?如果是這樣,這可以很容易地完成...讓我知道。 –

+0

@NidhinDavid我找到了一個解決方案,只需在async npm中使用'async.forEach' –

回答

0

我不認爲這是很好的解決方案。這只是一個黑客。

我認爲它符合您的需求。祝你好運。

var docsUpdated = 0; 
var length = dateArray.length; 
for (i = 0; i < length; i++) { 
    Trucks.update({ 
    'data.date': dateArray[i] 
    }, { 
    '$set': update 
    }, { 
    'multi': true 
    }, function(err, response) { 
    if(err) res.end(); 
    docsUpdated += response; 
    if(i === length-1){ 
     res.json(docsUpdated); 
    } 
    }) 
}