Mongodb 检索位于地理空间点附近的有限数量的记录

Mongodb 检索位于地理空间点附近的有限数量的记录,mongodb,geospatial,postgis,Mongodb,Geospatial,Postgis,我有一个用例,需要检索有限数量的记录,这些记录的位置是地理空间点。类似于: SELECT * FROM table WHERE location is near (x, y) LIMIT 200 我想用PostGIS。但我不知道它是否支持这种查询。因为我不希望检索边界框中的记录,而是希望根据到指定点的距离对记录的数量进行限制。我在PostGIS的文档中没有找到关于它的信息 如果PostGIS支持它,它是否可以扩展?这是我的应用程序中最常用的查询。而且记录的数量非常多 我知道MongoDB有$n

我有一个用例,需要检索有限数量的记录,这些记录的位置是地理空间点。类似于:

SELECT * FROM table WHERE location is near (x, y) LIMIT 200
我想用PostGIS。但我不知道它是否支持这种查询。因为我不希望检索边界框中的记录,而是希望根据到指定点的距离对记录的数量进行限制。我在PostGIS的文档中没有找到关于它的信息

如果PostGIS支持它,它是否可以扩展?这是我的应用程序中最常用的查询。而且记录的数量非常多


我知道MongoDB有$near查询。它可以扩展吗?

我不能和postgis说话,但MongoDB的操作符设计成可以很好地扩展,并有适当的地理空间索引,查询的正确性和速度都经过了彻底的测试。此外,使用游标选项可以很容易地指定所需结果的数量,从而减轻服务器和网络上的负载

PostGIS 2引入了KNN GiST索引距离运算符(如),这在中有很好的描述。该距离操作符是为速度而设计的

SELECT * FROM table WHERE location <-> ST_MakePoint(x, y) LIMIT 200;
从位置ST_生成点(x,y)限制为200的表中选择*;

还有许多其他距离过滤器和操作符可用。

谢谢!我还需要知道什么是postgis,因为我需要在关系数据库中使用JOIN函数。谢谢,这就是我要找的!