Mongodb 针对EVE RESTful API的地理定位API调用

Mongodb 针对EVE RESTful API的地理定位API调用,mongodb,rest,geojson,eve,Mongodb,Rest,Geojson,Eve,通过运行Eve RESTful API服务器,我可以轻松地将地理位置数据存储到MongoDB中。 因此,我将数据存储为: loc : { lng: 13.01111, lat: 51.01111 } 验证等工作很好 但是:我无法找到从RESTAPI中获取地理位置数据的方法。 在命令行中有一些可以很好地工作,但是似乎没有办法以适当的方式查询API 有没有办法针对RESTAPI或API抛出类似MongoDB的查询 哪种方法是定制API的首选方法 澄清一下:mongo cmd上已经有了一个2

通过运行Eve RESTful API服务器,我可以轻松地将地理位置数据存储到MongoDB中。 因此,我将数据存储为:

loc : {
  lng: 13.01111,
  lat: 51.01111
}
验证等工作很好

但是:我无法找到从RESTAPI中获取地理位置数据的方法。 在命令行中有一些可以很好地工作,但是似乎没有办法以适当的方式查询API

  • 有没有办法针对RESTAPI或API抛出类似MongoDB的查询
  • 哪种方法是定制API的首选方法
  • 澄清一下:mongo cmd上已经有了一个2d索引和GeoInner queriey,运行良好。
    这只是关于如何通过RESTAPI进行查询。

    MongoDB中的点可以存储为GeoJSON点对象

     loc : {
                type: 'Point',
                coordinates: [13.0111, 51.0111]
            };
    
    或传统坐标对

    loc : [13.01111, 51.01111]
    
    集合应该有一个索引(分别为2dsphere或2d)来有效地处理查询


    我很确定EVE有一个内置的GeoInside操作符。它只是不起作用,因为您正在查询无效的位置格式。

    没有提到它,但应该支持它。我不喜欢geo stuff,但我只是尝试发出一个
    $near
    查询,它返回了一个操作失败,因为我的数据库缺少必要的索引。这意味着该命令已正确传递到数据库

    如果您使用的是Postman之类的rest客户端,那么语法应该是这样的(为了简单起见,我使用了
    $near
    ):


    如果您使用的是
    app.get
    方法,请记住
    json.loads
    您的查询。希望这有帮助。

    正如我提到的,命令行上的查询工作正常。但我确实没有提到,我已经创建了一个2d索引,并在命令行上成功地执行了一些GeoInner查询。我不确定EVE是否有GeoInside操作符,据我所知,文档中没有提到它。
    ?where={"loc": {"$near": {"$geometry":{"type": "Point", "coordinates": [13,51]}}, "$maxDistance": 100}}