我有一个有日期的数据列表。我通常查询按日期排序的数据。但是当我需要从中间键来回检索一些数据时,我处于这种情况。我有按日期排序的数据(orderByChild("date")
),如下所示:
{
"key1":{
"date": "2016-07-25"
},
"key2":{
"date": "2016-07-26"
},
"key3":{
"date": "2016-07-27"
},
"key4":{
"date": "2016-07-28"
},
"key5":{
"date": "2016-07-29"
}
}
注意:日期也可能在将来。每个日期可以有多个条目。两个日期之间可能存在差距。
如果我知道key3
,我如何从key3
之上(即key2
)检索到列表末尾的数据(即key5
)?
例如,
如何使用密钥进行查询,并按子“date”进行排序。我有 key2 。从中我需要获取列表。
我试图在部分中获取结果,一个用于上部,一个用于下部。但是,当我使用orderByChild("date")
时,我无法将endAt()
与密钥一起使用(文档说:您可以结合使用startAt()
和endAt()
方法将结果限制在指定范围内值)。
有什么办法可以根据密钥检索列表吗?单程或部分?
答案 0 :(得分:0)
我已经改变了键的定义方式。
我使用date和push()的组合设置了密钥,而不是push()
。
同样,新密钥采用以下格式YYYYMMDD<PUSH_KEY>
。使用此格式,我可以使用2个单独的查询来查询数据。
以钥匙结尾:
ref.orderByKey().endAt(key).limitToLast(1)
,一个以密钥开头:
ref.orderByKey().startAt(key)
这给了我来自中间键两端的结果。
感谢@puf和大家的评论和帮助。