首页 > 解决方案 > 在nodejs中使用带有异步的for循环

问题描述

我已经连接了 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 is list..

标签: node.jsmongodbfor-loopasynchronouswaterfall

解决方案


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

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

推荐阅读