Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法用MongoDB查询完全覆盖给定多边形的所有位置(存储为geojson的多边形列表)?_Mongodb_Polygon_Geospatial_Geojson - Fatal编程技术网

有没有办法用MongoDB查询完全覆盖给定多边形的所有位置(存储为geojson的多边形列表)?

有没有办法用MongoDB查询完全覆盖给定多边形的所有位置(存储为geojson的多边形列表)?,mongodb,polygon,geospatial,geojson,Mongodb,Polygon,Geospatial,Geojson,我在MongoDB中有一个作为geoJson存储的多边形列表。 其中一个多边形的示例: { “区域”:“区域123”, “边界”:{ “类型”:“多边形”, “坐标”:[[100,12]、[120,12]、[120,15]、[100,12]] } } 边界是一个二维球体索引 使用$geointen,我可以指定一个更大的多边形,并返回完全位于这个更大多边形内的Area123 是否有方法指定位于Area123内的较小多边形,并让MongoDB返回Area123?您可以使用专门查找与其他多边形相交的多

我在MongoDB中有一个作为geoJson存储的多边形列表。 其中一个多边形的示例: { “区域”:“区域123”, “边界”:{ “类型”:“多边形”, “坐标”:[[100,12]、[120,12]、[120,15]、[100,12]] } } 边界是一个二维球体索引

使用$geointen,我可以指定一个更大的多边形,并返回完全位于这个更大多边形内的Area123

是否有方法指定位于Area123内的较小多边形,并让MongoDB返回Area123?

您可以使用专门查找与其他多边形相交的多边形的用户。您可以这样做:

db.<collection>.find( { Boundary :
                         { $geoIntersects :
                            { $geometry :
                               { type : "Polygon"
                                 coordinates : [ <coordinates of Area123> ]
                      } } } } )
db..find({边界:
{$GEO交叉点:
{$geometry:
{类型:“多边形”
坐标:[]
} } } } )
但是,此查询将返回即使不包含
Area123
的多边形,也会返回位于内部的多边形、相交的多边形等


因此,您可以检查每个返回的多边形是否包含Area123点。

非常感谢!这就是我想要的,让所有多边形都包含一点、在一点之内和相交一点$geoIntersects工作完美!