在Node.js中使用for循环与异步

时间:2018-07-12 09:18:54

标签: node.js mongodb for-loop asynchronous waterfall

我已经连接了mongodb和nodejs。

我对要列出的sav查询结果有疑问。

results = [];

for(i = 0; i<query.length; i++){
    db.collection(collectionName).find(query[i]).toArray(function(err, result){
        results[i] = result;
    });
}

我使用了 async.waterfall ,但是效果不是很好... 如果您像我一样解决了这个问题,请问如何解决?

像这样的查询:

{
location:{
  $geoWithin : {
    $center: [[lng, lat], radian]}}, 
time : "time value" 
}

lng,lat,time是列表。

1 个答案:

答案 0 :(得分:1)

根据查询数组的内容,最好运行一个使用 $or 运算符的查询,而不是遍历查询数组并为每个查询触发服务器请求:

db.collection(collectionName).find({ '$or': query }).toArray((err, results) => {
    console.log(results);
});