2016-11-12 260 views
2

我的火力表后获得属性是这样的:火力地堡 - 如何通过子查询

posts 
    randomId 
    username 
    age 

我希望能够通过子查询,然后而不是返回整个对象只返回属性我需要。

subscribePostsAgeForUsername(username: string): Observable<string[]>{ 
    return this.af.database.list('posts', { 
    query: { 
     orderByChild: 'username', 
     equalTo: username 
    } 
}); 

这个截至目前只是返回整个对象。我只想回到年龄。

+1

您正在考虑将Firebase视为不是关系数据库。如果你只想要年龄,你可能不得不改变你的模式,这样你就能得到想要的结果。 –

回答

0

您可以使用地图运营商从rxjs

return this.af.database.list('posts', { 
    query: { 
     orderByChild: 'username', 
     equalTo: username 
    } 
}).map(posts => posts.map(post => post.property_you_need)); 

注:当您使用此方法,你仍然可以从angularfire列表整个对象,只是地图简化它。如果您的主要原因是仅通过获取该属性来提高性能,那么它在火力点上不会那样工作。您需要根据您的需求重新构建您的数据库。