我打算从我的数据库中获取一个列表,其中某些记录包含可以设置的属性。我想查询和显示没有此属性的项目
{
books: {
book_3: {
title: "Return of The King"
},
book_2: {
title: "The Two Towers"
},
book_1: {
title: "The Fellowship of the Ring"
read: 1256953732
}
}
}
我读过第一本书,我想展示剩下的两本书。 在Firebase中我做了:
fbl.child('books').orderByChild('read').equalTo(null).on("value", function(data) {
// handle data
}
在AngularFire2中,我会做类似的事情:
this.af.database.list('books', { query: {
orderByChild: 'read',
equalTo: null
}});
第一种方式有效,我得到book_2,book_3,但AngularFire2方式返回整个列表!是否有值可以表示为空值?我试过布尔,空字符串等,但似乎没什么用。
也许这是一个错误。
答案 0 :(得分:1)
问题已通过this pull request修复 - 包含在AngularFire2的 2.0.0-beta.7
版本中。
问题已通过this pull request修复 - 应该包含在2.0.0-beta.7
后面的AngularFire2的已发布版本中。
使用此修复程序,如果您创建这样的查询:
this.af.database.list('books', { query: {
orderByChild: 'read',
equalTo: null
}});
它们的行为与您期望的一样,并且仅返回没有read
属性的列表项。
答案 1 :(得分:0)
你可以填充"阅读"每个节点的子节点为0(因为您存储时间戳及其整数值)并查询如下内容:
af.database.list('books', { query: {
orderByChild: 'read',
equalTo: 0
}