具有空值的Couchbase lite复合键范围

时间:2018-05-23 08:16:29

标签: java android kotlin couchbase-lite

我使用格式为

的复合键查看我的天气数据
[ "District", "2018", "05", "23", "06", "00", "00" ]

在服务器上,我可以使用启动键和结束键查询一天的天气

startkey=[ "District","2018","05","23",null,null,null]
endkey=[ "District","2018","05","23","\u0fff","\u0fff","\u0fff"]

这为我提供了2018-05-23 区的所有天气。现在,在将文档同步到android上的couchbase lite之后,我试图复制键范围。 我试过了

startkey=arrayListOf("District","2018","05","23",null,null,null)
endkey=arrayListOf("District","2018","05","23","\u0fff","\u0fff","\u0fff")

但是这会返回一个空数据集。如何格式化我的密钥以复制我在服务器上所做的事情。

1 个答案:

答案 0 :(得分:1)

Couchbase服务器 Couchbase Lite 具有查询的语法差异,因为它清楚地描述了我们在服务器端构建复合键数组的方式,null已被解析为获取 endKey 中提供的 Unicode 与输出的字典正确值相同 假设您的复合键

[ "District", "2018", "05", "23", "06", "00", "00" ]
[ "DistrictName","year","month","day","hour,"minute","second"]

移动端可能有两个选项( Couchbase Lite )来查询此类复合键,因为不提供小时/分钟/秒的值 要么 null和Unicode的更多值表示:

自:

startkey=arrayListOf("District","2018","05","23",null,null,null)
endkey=arrayListOf("District","2018","05","23","\u0fff","\u0fff","\u0fff")

要:

startkey=arrayListOf("District","2018","05","23","00","00","01")
endkey=arrayListOf("District","2018","05","23","23","59","59")