mongoose中数组循环查询find结果的同步实现
来源:互联网 发布:淘宝购物返利网高 编辑:程序博客网 时间:2024/06/05 19:58
在项目中,mongoose的find方法查询是异步查询的,所以得到的结果是异步的结果,看下面的例子。
根据试卷的id号查找对应试卷中的试题,找到试题id后找到试题信息。
加入试题数据库信息如下:
{ "_id" : ObjectId("59dc79ddcf9bb828c4689284"), "quesType" : "1", "quesStem" : "第1单选", "quesAns" : "A", "quesAla" : "第1单选", "quesSel" : [ "第1单选", "第1单选", "第1单选", "第1单选" ]}
quesType是试题类型(单选/多选/判断),quesStem是试题题干,quesAns是试题答案,quesAla试题结果分析,quesSel试题选项。后台查询代码如下:
var length;//试题长度var quesList;//试题信息Exam.find({_id:id}).then((info){var idArr = info.split(',')idArr.forEach((id)=>{Ques.find({_id:id}).then((quesInfo)={quesList.push(quesInfo)})})})
理论上我们想要得到的结果就像是数据表中一一对应的结果,然后结果并非这样,因为find方法是异步的,查询结果是不确定的。
如何实现一一对应的结果呢,类似于同步方法呢?
方法是Promise.all方法。代码如下:
var length;//试题长度var quesList;//试题信息Exam.find({_id:id}).then((info){var idArr = info.split(',');length=idArr.length;var promises = idArr.map((id)=>{return Ques.find({//记得必须要return_id:id})})return Promise.all(promises)}).then((objList)=>{objList.forEach((info)=>{//获取试题信息:试题类型,试题题干,试题选项objInfo.push({quesType:info[0].quesType,quesStem:info[0].quesStem,quesSel:info[0].quesSel})//返回前台查询结果。判断添加是试题信息的长度等于之前获取试题id号的长度if(quesList.length==length){res.json({quesInfo:quesList})}})})那么结果就是我们想要得到的结果。
阅读全文
1 0
- mongoose中数组循环查询find结果的同步实现
- mongoose $where、find查询
- mongoose 多条件模糊查询的实现
- mongoose中通过-id查询的方法
- C# 中 Linq查询结果的循环性能改进
- mongoose对查询结果进行排序
- [java]一次for循环实现查询有序数组中所有重复的元素
- mongoose实现权限查询控制
- 利用DataView.ToTable 方法 (String) 在结果中查询,可以实现无限次循环
- oracle在查询结果中附加一列的实现方法
- MySQL通过游标来实现通过查询结果集循环
- mongoose实现分页和复杂查询
- Sql Server 中如何循环遍历查询结果
- Sql Server 中如何循环遍历查询结果
- Find Minimum in Rotated Sorted Array 循环数组中查找最小的数
- Struts 中 实现查询结果分页显示
- Struts中实现查询结果分页显示
- 让linux find命令查询的结果为绝对路径
- JavaScript框架之AngularJS学习——UIRouter
- CSS hack是什么?IE6\7\8\9\10浏览器的CSS hack大全介绍
- 不直接操作state
- PHP 常用的header头部定义汇总
- python 爬虫知识点 (http 基础)
- mongoose中数组循环查询find结果的同步实现
- SpringMVC和FreeMarker整合中使用注解方式的后台数据校验validate(部分自己扩展)
- Java(4):基础算法(1)--斐波那契数列之小兔子生孩子
- c++初级 之 类型转换
- Java 阿里官方代码规范标准手册终极版下载
- 使ssh不用输入密码
- zookeeper和dubbo
- 判断二叉树是否是二叉搜索树
- 为mysql数据库建立索引