猿问

Python Eve 0.8:如何在$ centerSphere中执行$ geowithin?

我们已经部署了一个 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 执行的。谢谢。


慕雪6442864
浏览 173回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答