Mongodb 将点与区域进行匹配的有效方法

Mongodb 将点与区域进行匹配的有效方法,mongodb,geospatial,postgis,Mongodb,Geospatial,Postgis,我有一个由中心(纬度、经度)和半径标识的圆形区域列表。我有一张地球上由经纬度确定的点的列表。对于每个点,我想找到它所属的区域。请注意,这两份名单都可能有数百万人 最有效的方法是什么 问候 MongoDB内置了对边界查询的支持,因此您可以在给定形状内查找点。圆(中心+半径)是受支持的类型之一。因此,假设在位置字段(db.places.ensureIndex({loc:“2d”})或类似字段上定义了地理空间索引,则可以执行以下操作: > center = [50, 50] > radiu

我有一个由中心(纬度、经度)和半径标识的圆形区域列表。我有一张地球上由经纬度确定的点的列表。对于每个点,我想找到它所属的区域。请注意,这两份名单都可能有数百万人

最有效的方法是什么


问候

MongoDB内置了对边界查询的支持,因此您可以在给定形状内查找点。圆(中心+半径)是受支持的类型之一。因此,假设在位置字段(
db.places.ensureIndex({loc:“2d”})
或类似字段上定义了地理空间索引,则可以执行以下操作:

> center = [50, 50]
> radius = 10
> db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}})
可在此处找到更多信息:


MongoDB内置了对边界查询的支持,因此您可以在给定形状内查找点。圆(中心+半径)是受支持的类型之一。因此,假设在位置字段(
db.places.ensureIndex({loc:“2d”})
或类似字段上定义了地理空间索引,则可以执行以下操作:

> center = [50, 50]
> radius = 10
> db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}})
可在此处找到更多信息:


谢谢你,亚当。如果您不介意的话,还有一个后续问题——考虑到有一百万个圆形区域,并且每个位置都会有一个新的“内部”查询,MongoDB是否表现良好?除了地理空间索引之外,还有什么方法可以优化它吗?如果不实际运行它,很难说。我可以说,索引的geohashing确实表现得很好。就性能而言,我不太熟悉的运营商中的$in。如果您可以将数据集保存在RAM中,并且如果它没有受到CPU的限制,那么我不明白为什么它不会很快。但只有一种方法可以确定:测试,测试,测试……)如果您需要索引/查询设置方面的帮助,或者只是想发布结果并获得反馈,那么请直接访问mongodb用户Google group-我们是响应速度非常快的一群人:)谢谢Adam。如果您不介意的话,还有一个后续问题——考虑到有一百万个圆形区域,并且每个位置都会有一个新的“内部”查询,MongoDB是否表现良好?除了地理空间索引之外,还有什么方法可以优化它吗?如果不实际运行它,很难说。我可以说,索引的geohashing确实表现得很好。就性能而言,我不太熟悉的运营商中的$in。如果您可以将数据集保存在RAM中,并且如果它没有受到CPU的限制,那么我不明白为什么它不会很快。但只有一种方法可以确定:测试,测试,测试……)如果您需要索引/查询设置方面的帮助,或者只是想发布结果并获得反馈,那么请直接访问mongodb用户Google group-我们是响应速度非常快的一群人:)