【问题标题】:I can´t find right values querying nested arrays with mongodb, mongoose and nodejs我找不到使用 mongodb、mongoose 和 nodejs 查询嵌套数组的正确值
【发布时间】:2016-08-10 17:25:30
【问题描述】:

尊敬的 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 休息方法以及我如何使用 mongoose、nodejs 和 mongodb我的 moongose 模型,从 Umongo Ide 更好地查看模型:

SEE THE IMAGE HERE BECAUSE I AM NEW IN STACKOVERFLOW

所有结构都在工作,但结果中的数据不是我所期望的。你可以通过点击这个url来查看这个rest服务的响应: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 数据。

我确定这可能是一个简单的错误,但我现在没有看到它。

我真的希望你们能帮助我。提前致谢!祝你有美好的一天。

【问题讨论】:

  • 找到了,但我在等 cmets!我的答案在下面...谢谢。

标签: node.js mongodb mongoose


【解决方案1】:

我的错!我刚刚找到了解决方案...我将它发布在这里给任何有同样疑问的人...查询数据的代码应该是这样的(它只是键语法,基本 mongo):

ExamReportByUser.find({'user_ppal_id':userPpalId},{'exams_created': {$elemMatch:{'exam_design_id':examDesignId}}},'id user_ppal_idexams_createdexam_design_id user_submitted_exam',function (err, result) { if (err) return console.log(err); return res.send(result); }); };

现在我正在获取用户 1 和考试设计 1 的数据。

我不会选择这个作为答案,等待专家;)

【讨论】:

    猜你喜欢
    • 2018-11-10
    • 2022-09-29
    • 2018-02-02
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    相关资源
    最近更新 更多