根据 Firebase 中的类别检索数据
Retrieve data based on categories in Firebase
我是 Firebase 的新手,我对检索一些数据有疑问。
假设我有以下数据结构:
我的查询目标是针对给定的国家/地区名称,我想检索其目的地数组包含该国家/地区的所有用户。例如:
对于 "Jordan" 的查询,它将检索:user2 和 user3。
任何人都知道我如何使用 Firbase 进行这样的查询 Angular?
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
}
}
}
现在您可以查询目的地为约旦的用户:
var users = ref.child('advisors-countries').orderByChild('destinations/Jordan')
.equalTo(true);
然后将其绑定到您的 AngularJS 范围:
$scope.users = $firebaseArray(users);
这种类型的数据结构称为索引,您会经常发现需要向 NoSQL 数据库添加特定索引以满足应用程序的查询要求。请参阅此 article on NoSQL data modeling 以获得有关该主题的良好介绍。
我是 Firebase 的新手,我对检索一些数据有疑问。 假设我有以下数据结构:
我的查询目标是针对给定的国家/地区名称,我想检索其目的地数组包含该国家/地区的所有用户。例如: 对于 "Jordan" 的查询,它将检索:user2 和 user3。
任何人都知道我如何使用 Firbase 进行这样的查询 Angular?
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
}
}
}
现在您可以查询目的地为约旦的用户:
var users = ref.child('advisors-countries').orderByChild('destinations/Jordan')
.equalTo(true);
然后将其绑定到您的 AngularJS 范围:
$scope.users = $firebaseArray(users);
这种类型的数据结构称为索引,您会经常发现需要向 NoSQL 数据库添加特定索引以满足应用程序的查询要求。请参阅此 article on NoSQL data modeling 以获得有关该主题的良好介绍。