繁体   English   中英

MongoDB查询以获取特定的数组元素

[英]MongoDB Query to get specific array element

我是MongoDB查询的新手。 我已经读过一些MongoDB书籍,但是无法找到查询文档以检查键值的方法。 例如,

文件是:

{
"_id" : ObjectId("57efaec42e656319d2a2860b"),
"Name" : {
    "First" : "Peter",
    "Last" : "John"
},
"Math" : {
    "SA1" : 10,
    "FA1" : 22,
    "Grade" : "A",
},
"English" : {
    "SA1" : 15,
    "FA1" : 25,
    "Grade" : "A-",
},
"Science" : {
    "SA1" : 18,
    "FA1" : 28,
    "Grade" : "A+",
},
"Subjects" : [ "English", "Math", "Science" ]
}

我想查询:Subject [0] ==“ A”的成绩吗? 它应该返回TRUE / FALSE。 因此,它必须首先从“主题数组”中找出主题的名称,然后使用该名称来比较该主题中的成绩。

该逻辑必须以查询MongoDB的语言编写。 在SQL中,我们可能会编写一个涉及子查询的语句。 但是在MongoDB中,建议编写两个单独的查询以实现结果。

JavaScript中的示例函数:

function checkIfStudentHasAGrade(){

var student = db.collection.findOne("_id":"<input _id>"); 

if(null != student){
var subject = student.subject[0];

if(student.subject.Grade == "A")
    return true;
else
    return false;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM