【发布时间】:2013-06-17 13:18:32
【问题描述】:
我正在使用 CouchDB 中的位置数据库。我创建了一个视图,其中我的键是一个具有四舍五入的纬度和经度值的数组。现在我选择以下条件:
Startkey: [ 52.34, 4.883 ]
Endkey: [ 52.37, 4.903 ]
我希望我只会收到纬度在 52.34 和 52.37 之间的文档。以及4.883和4.903之间的经度。
我收到的结果:
[ 52.358, 4.919 ]
[ 52.358, 4.919 ]
[ 52.362, 4.861 ]
[ 52.362, 4.861 ]
[ 52.362, 4.861 ]
您可能已经注意到,第一个结果中的经度大于结束键 4.919 的经度。
现在我知道/读到某处我会收到一些超出数组第二项范围的值。但是第一项怎么可能已经不符合条件了呢?
我用谷歌搜索了一下,我真的找不到关于 startkey/endkey 作为数组的解释。谁能给我解释一下 CouchDB 如何遍历文档并定义何时“开始”和何时“结束”?
【问题讨论】:
-
我知道不支持二维查询(因此您的查询将不起作用)。许多人使用 GeoCouch (github.com/couchbase/geocouch)。
-
你是说Couch会忽略数组中的第二个元素?
-
不支持二维查询,所以我想您可能会认为“忽略”。
标签: couchdb