我是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" ]
}
我想查询:主题等级[0] ==“A”?它应该返回TRUE / FALSE。因此,必须首先从主题数组中找出主题的名称,然后使用该名称来比较该主题中的成绩。
答案 0 :(得分:0)
这个逻辑必须用查询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;
}