我有以下json对象:
{
"posts" : {
"-Jk3ipZ2EFgvkABHf9IX" : {
"category" : "JavaScript",
"date" : 1426008529445,
"heading" : "Lorem",
"text" : "dsvgfjds daefsrgfs defsds dsfsdds",
"user" : "Mitko"
},
"-Jk3jFbOOE9V8Yd37tWj" : {
"category" : "C#",
"date" : 1426008640253,
"heading" : "Lorem",
"text" : "Some Text!",
"user" : "Peter"
}
}
}
我在我的应用中使用Angularfire。有没有办法让我查询这个json并只提取类别名称,或者我应该为类别和查询创建一个额外的对象。我问,因为查询整个数组只有一个值感觉多余。
提前致谢
答案 0 :(得分:4)
Firebase的JavaScript SDK(在其上构建AngularFire)将始终加载完整的节点。因此,无法仅从帖子中加载该类别。
通常的做法是创建仅包含类别的第二个顶级节点;或者类别和(对于每一个)该类别中每个帖子的推送ID。
{
"posts" : {
"-Jk3ipZ2EFgvkABHf9IX" : {
"category" : "JavaScript",
"date" : 1426008529445,
"heading" : "Lorem",
"text" : "dsvgfjds daefsrgfs defsds dsfsdds",
"user" : "Mitko"
},
"-Jk3jFbOOE9V8Yd37tWj" : {
"category" : "C#",
"date" : 1426008640253,
"heading" : "Lorem",
"text" : "Some Text!",
"user" : "Peter"
}
},
"categories" : {
"JavaScript" : {
"-Jk3ipZ2EFgvkABHf9IX"
},
"C#" : {
"-Jk3jFbOOE9V8Yd37tWj"
}
}
它有点多余,但允许您准确获取在UI中显示特定屏幕所需的数据。像这样对数据进行非规范化是转换到NoSQL数据库的常见部分。