我是Firebase的新手,我对检索一些数据有疑问。 假设我有以下数据结构:
我的查询的目标是针对给定的国家/地区名称我想要检索其目标数组包含此国家/地区的所有用户。例如: 查询" Jordan"它将检索:user2和user3。
有人知道我怎么能用Firbase Angular做这样的查询?
答案 0 :(得分:4)
Firebase没有与数组中的项匹配的查询运算符。实际上:Firebase建议不要使用阵列来处理您拥有的阵列。相反,存储数据如下:
advisors-countries: {
user1: {
destinations: {
Angola: true,
Australia: true
}
},
user2: {
destinations: {
Angola: true,
Austria: true,
Jordan: true
}
},
user3: {
destinations: {
Austria: true
Egypt: true,
Jordan: true
}
}
}
现在,您可以查询目的地为Jordan的用户:
var users = ref.child('advisors-countries').orderByChild('destinations/Jordan')
.equalTo(true);
然后使用以下命令将其绑定到AngularJS范围:
$scope.users = $firebaseArray(users);
这种类型的数据结构称为索引,您经常会发现需要向NoSQL数据库添加特定索引以满足应用程序的查询要求。有关该主题的详细介绍,请参阅此article on NoSQL data modeling。