node.js - 在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..
解决方案
根据查询数组所包含的内容,您最好运行使用$or
运算符的单个查询,而不是遍历查询数组并为每个查询触发服务器请求:
db.collection(collectionName).find({ '$or': query }).toArray((err, results) => {
console.log(results);
});
推荐阅读
- html - HTML/CSS 使 Div 适合内容,除非屏幕很小
- search - 手册页中是否有用于选项和命令的特殊搜索命令(更少)?
- sql-server - 如何在 SQL Server 函数中执行 if else 语句
- python - Python Selenium - 无法使用谷歌快捷方式关闭选项卡
- apache-calcite - 如何在没有为 Pivot 表达式值传递别名的情况下对查询使用 RelBuilder.pivot() 方法?
- python - 使用 Python 在 Outlook 中显示某些电子邮件
- javascript - iOS 14 上的 Cordova Javascript Worker 问题:SecurityError:操作不安全
- python - 如何切换继电器?
- javascript - 为什么我的打字稿程序随机停止运行?
- android - 我如何在颤振中找回丢失的styles.xml文件