Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Eve 0.8:如何使用$centerSphere执行$GEOIN?_Python_Mongodb_Eve - Fatal编程技术网

Python Eve 0.8:如何使用$centerSphere执行$GEOIN?

Python Eve 0.8:如何使用$centerSphere执行$GEOIN?,python,mongodb,eve,Python,Mongodb,Eve,我们部署了一个docker容器,其中运行着MongoDB数据库。这是一个简单的数据库,我们在其中存储地理参考传感器数据(例如温度、风速)。由于我们希望基于搜索半径查询这些地理参考观测值,因此我们启用了如下空间查询: db.ObsStationTemp.createIndex({point:"2dsphere"}) db.ObsStationTemp.ensureIndex({"geometry":'2dsphere'}) 数据在MongoDB中被正确摄取,我们实际上可以执行如下空间查询: db

我们部署了一个docker容器,其中运行着MongoDB数据库。这是一个简单的数据库,我们在其中存储地理参考传感器数据(例如温度、风速)。由于我们希望基于搜索半径查询这些地理参考观测值,因此我们启用了如下空间查询:

db.ObsStationTemp.createIndex({point:"2dsphere"})
db.ObsStationTemp.ensureIndex({"geometry":'2dsphere'})
数据在MongoDB中被正确摄取,我们实际上可以执行如下空间查询:

db.ObsStationTemp.find({geometry:{$geoWithin:{$centerSphere:[[4.925922,51.969035],2/3963.2]}}})
现在我们想使用Eve从HTTP接口访问这些观察结果。我们将前面的查询转换为HTTP。我们尝试了多种组合,例如:

 http://127.0.0.1:5000/ObsStationTemp?where={"geometry": {"$geoWithin": {"$centerSphere": [ [4.92592, 51.969035],0.02]}}}
但它们都不起作用。 这是Eve服务器的回复:

{
   "_status": "ERR",
   "_error": {
       "code": 400,
       "message": "Query contains unknown or unsupported operators: $centerSphere"
   }
}
当前HTTP查询中缺少什么?有任何帮助或分享一个例子吗?我们使用的是Eve 0.8,查询是使用PostMan执行的。谢谢

我们使用的是Eve 0.8,查询是使用PostMan执行的

这是因为(当前版本为0.8)不支持该运算符。看见您可以在上提交操作员支持请求


另外,值得注意的是,
$geointen
$centerphere
的配合使用仅在MongoDB v3.4+上提供。

非常感谢!根据您的建议,我在这里新开了一期:
$centerSphere
支持已添加到Eve v0.8.1-dev。感谢您如此快速地将我的PR合并到@Nicolairocci