我在 CouchDB 中有一组地理定位的文档 - 也就是说,它们的结构类似于
{
_id: ...,
...
coords: {
lat: 45.204149214,
long: 40.284712972
}
}
我希望能够在地图上显示它们。这需要我在给定的方格中获取所有文件。在给定的时间间隔内很容易获得所有经度的文档:
// map function
function(doc) {
emit(doc.coords.long, doc.other_stuff);
}
使用类似的查询
// query
/path/to/view/?startkey=40&endkey=50
问题是我看不到如何做多维约束。如何获取纬度在 20到30 之间以及经度在 40 到 50 之间的所有文档?我看到我可以指定多个键,但这会或结果。
一种选择是在客户端上进行进一步过滤,但考虑到数据的大小,这可能是不可行的。
免责声明:关于 SO 有几个类似的问题,基本上说明这是不可能的。由于它们看起来都过时了,我想知道最新版本的 CouchDB 是否发生了变化。