gpt4 book ai didi

python 前夕 0.8 : how to perform a $geowithin with a $centerSphere?

转载 作者:可可西里 更新时间:2023-11-01 10:01:56 29 4
gpt4 key购买 nike

我们已经部署了一个 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 接口(interface)访问这些观察结果。我们将之前的查询转换为 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 执行的。谢谢。

最佳答案

We are using Eve 0.8 and the query is performed using PostMan.

这是因为PyEve (当前版本 0.8)不支持 $centerSphere运算符(operator)。参见 eve/io/mongo/mongo.py#L94-L102 .您可以在 PyEve's issue tracker 上提交请求为运营商提供支持。

此外,值得注意的是,$geoWithin$centerSphere 的结合使用仅适用于 MongoDB v3.4+。

关于 python 前夕 0.8 : how to perform a $geowithin with a $centerSphere?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51964375/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com