Mongodb 查找与多个点相交的多个多边形

Mongodb 查找与多个点相交的多个多边形,mongodb,Mongodb,假设我在MongoDB中有5k个多边形,我想用25个分散的点来查询它们,即相对于多边形不紧密聚集。有没有一种方法可以有效地查询数据库 我的理解是,您可以将这些点组合到一个单一的geojson功能中,并进行交叉。但这是一个坏主意,因为点集周围的边界框将是巨大的,因此您不会真正受益于多边形上的任何现有索引 或者,您可以执行$或查询,我会检查自己,看看这是否可行,但这可能会孤立地处理每一位,这似乎有点低效,但比前面的选项要好得多 理想情况下,我想要类似postgis伪代码的东西: select * f

假设我在MongoDB中有5k个多边形,我想用25个分散的点来查询它们,即相对于多边形不紧密聚集。有没有一种方法可以有效地查询数据库

我的理解是,您可以将这些点组合到一个单一的geojson功能中,并进行交叉。但这是一个坏主意,因为点集周围的边界框将是巨大的,因此您不会真正受益于多边形上的任何现有索引

或者,您可以执行$或查询,我会检查自己,看看这是否可行,但这可能会孤立地处理每一位,这似乎有点低效,但比前面的选项要好得多

理想情况下,我想要类似postgis伪代码的东西:

select * from polygon_table
where geometry in ($1,$2,$3...)
据我所知,这将执行以及逻辑上可能的排序

25包在里面

例如


是的,这就是我在问题的第三段中提到的,但我不确定这是否能提供足够好的性能,是否有更好的性能。我对此表示怀疑。地理索引相当不错,5k文档也不多。您可以查看详细信息。请解释。
db.collection.find({ $or: [
     { loc: {
       $geoIntersects: {
          $geometry: { type: "Point", coordinates: [ 3, 4 ] } }
       }
     } },
     { loc: {
       $geoIntersects: {
          $geometry: { type: "Point", coordinates: [ 10, 20 ] } }
     } }

] })