我在Web应用程序中使用Firebase和AngularFire4。该模型相对简单,但我在找到正确的设计方法时遇到了麻烦。
我有两个集合:places
和countries
,如下所示:
地方
"places" : {
"-Kjx7NhHnyZNIZbxvzx4" : {
"name" : "Dereck beer",
"type" : "Bar"
"location" : {
"cityName" : "Kagoshima",
"country" : {
"code" : "JP",
"id" : 110,
"name" : "Japan"
},
"streetName" : "892-0842 Higashisen"
},
"modifiedOn": 121211321321
}
//... More data here...
}
国家
"countries" : {
"110" : {
"code" : "JP",
"id" : 110,
"name" : "Japan"
}
}
目前在Web应用程序中我显示了地点列表,我可以导航到每个地方的详细视图。我还可以显示这些地方所属的国家/地区(我在国家/地区集合中创建新条目,如果尚未存在,则在创建/更新新地点时)。
但是我想通过某些属性过滤场所,例如按类型。我尝试使用AngularFire docs中的以下查询,但它不起作用:
constructor(private db: AngularFireDatabase) {
var query = {
orderByChild: 'modifiedOn',
equalTo: {
value: 'Bar',
key: 'type' }
};
this.db.list("/places", query).subscribe( data => {
//All places are returned, and not only the one of type = "Bar"
});
}
如果可能的话,我想避免this approach并过度复制我的馆藏,只是为了能够查询它们。
答案 0 :(得分:0)
应该是
var query = {
orderByChild: 'type',
equalTo: 'Bar'
};
orderByChild
和equalTo
是firebase中的一对,它与sql查询不同