亲爱的stackoverflow社区,
我通常不会在这里发帖,但这次我问自己为什么不呢?,2小时后没有得到解决方案。
这个是非常基本的,但涉及一个特定的json模型,mongoose,mongodb和nodejs。
现在的问题是,我正在尝试获取user_ppal_id的数据:1和exam_design_id:1,user_ppal_id的搜索成功,但是进入嵌套数组的exam_design_id总是返回给我的值1和2(我通过参数传递exam_design_id 1)......
这是我的模型,我的nodejs rest方法以及我如何使用mongoose,nodejs和mongodb ,我的moongose模型,< strong>从Umongo Ide更好地了解模型:
SEE THE IMAGE HERE BECAUSE I AM NEW IN STACKOVERFLOW
所有结构都在工作,但结果中的数据不是我预期的结果。您只需点击此网址即可查看此休息服务的响应:http://207.244.75.230:8000/dyntestreports/getExamReport?idUserPpal=1&idExamDesign=1
在响应中,当我只传递值1时,我得到值1和2的exam_design_id数据。
实际上我尝试使用以下mongo查询,但我没有成功:
1)ExamReportByUser.find({'user_ppal_id':userPpalId,'exams_created':{$ elemMatch:{'exam_design_id':{$ eq:examDesignId}}}}
2)ExamReportByUser.find({ 'user_ppal_id':userPpalId, 'exams_created.0.exam_design_id':examDesignId}
此刻我甚至不知道我做错了什么,即使是从mongo控制台查询,我也无法让它仅适用于exam_design_id = 1数据。
我确定这可能是一个简单的错误,但我现在还没有看到它。
我真的希望你能帮助我们。提前致谢!祝你有愉快的一天。
答案 0 :(得分:0)
我的坏!我刚刚找到了解决方案......而且我在这里发布它给那些有同样疑问的人......查询数据的代码应该是这样的(它只是键语法,基本的mongo):
ExamReportByUser.find( {'user_ppal_id':userPpalId},{'exams_created':{$ elemMatch:{'exam_design_id':examDesignId}}} ,'id user_ppal_id exams_created exam_design_id user_submitted_exam',function (错误,结果){if(错误)返回console.log(错误);返回res.send(result);}); };
现在我收到了用户1和exam_design 1的数据。
我不会选择这个作为答案,等待专家;)