Angularfire2查询由子子孙
问题描述:
现在,我试图用这样的查询:Angularfire2查询由子子孙
this.topNews = this.af.database.list('news',{
query: {
orderByChild: 'label/sport',
equalTo: 'true'
}
});
不幸的是我没有真正得到什么...我认为这是可以通过一个孩子的孩子进行查询。我仍然希望它是!
我的结构:
news
-new1
-content...
-labels
-sport : true
-soccer: true
-new2
...
谢谢!
补充问题:是否有可能从数据库中获得某种标签类型(比如运动,足球......),还是能够收集/然后过滤它们的任何良好做法?我会将标签动态地添加到新闻,然后以某种方式能够查询所有这些... (我有SQL的经验,我仍然不能完全理解这个noSQL背后的逻辑)
答
我意识到以后几个尝试,在火力,当你写真正它实际上包括一个真正的布尔值,而不是一个“真正的”字符串,所以现在它正在以这种方式工作:
this.topNews = this.af.database.list('news',{
query: {
orderByChild: 'labels/sport',
equalTo: true //this changed!
}
});
答
它是不是一个完整的答案,只是一个猜测。尝试改变这一点:
this.topNews = this.af.database.list('news',{
query: {
orderByChild: 'labels/sport',
equalTo: 'true'
}
});
或
this.topNews = this.af.database.list('news',{
query: {
orderByChild: 'label',
equalTo: 'sport'
}
});
关于结构的一部分,我想你应该保持一个分别收集保存的标签,这样你就可以更快地访问它。在noSQL中复制事物没有问题。唯一需要注意的是,当您在标签表中更改此标签时,您必须更新每个使用它的文档,以避免不一致。
+0
不幸的是,我只是拼错了标签* s在这里...不是代码..所以这不是问题.. – Colosh
不错。我相信它对我也是有用的。谢谢! – vinagreti