[英]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.