我有一个Json Tree for Teachers数据库
{ "Teachers":
{
"Teacher_id" : {
"email" : "teacher1@something.com",
"name" : "teacher1",
"Subjects" : {0 : "Maths",
1 : "science"
},
"Subject_Exp-in-years" :{ 0:"Maths_2",
1:"Science_4"
}
},
"Teacher_id" : {
"email" : "teacher2@something.com",
"name" : "teacher2",
"Subjects" : {0 : "Geography",
1 : "science"
},
"Subject_Exp-in-years" :{ "Geography_5",
"Science_1"
}
}
}
我如何获得教授科学的教师
我使用了查询
var db_ref=firebase.database().ref();
db_ref.child("Teachers").orderByChild("Subjects").equalTo("Science")
如何通过查询函数来检查数据库中的数组中是否存在值?
答案 0 :(得分:0)
使用.orderByChild("Subjects").equalTo("Science")
时,由于Subjects
个节点子节点都不等于Science
,因此无法正常工作。所以为了解决这个问题,我重新命令你改变一下这样的数据库结构:
{ "Teachers":
{
"Teacher_id" : {
"email" : "teacher1@something.com",
"name" : "teacher1",
"Subjects" : {Maths: true,
science: true
},
正如您所见,我已将Subjects
的孩子改为:Maths: true
和science: true
。要检查节点下是否存在值,只需在该节点上使用exists()
函数。
希望它有所帮助。
答案 1 :(得分:0)
您可以使用for循环来读取数组中的每个元素。
当你逐个阅读它们时,你可以包含if else语句来检查你想要的值是否存在。我们假设值为JOHN
。
var index;
var arraylist = ["a", "b", "c"];
for (index = 0; index < arraylist.length; ++index) {
if(arraylist[index] = "JOHN") {
console.log(arraylist[index] + "is in the array");
};
}