我的mongodb集合中的文档长这个样子:
我有一个点(lat long pair),我将其称为
因此,当然我需要计算每条多边形边缘描述的线条等等,然后查看点的坐标是否在其中。但是现在,让我们假设我们只想查询具有
以下是我的查询尝试:
然而,结果是:
{
"_id" : ObjectId("5562d6831683523f449e7d85")
"geometry" : {
"type" : "Polygon",
"coordinates" :
[[
[-122.4,37.81],
[-132.9, 39.9],
[-122.28, 37.80],
[-124.18, 39.81]
]]
}}
我有一个点(lat long pair),我将其称为
x
和y
。我需要查看文档的坐标是否创建了一个多边形,使得这些坐标位于该多边形内部。因此,当然我需要计算每条多边形边缘描述的线条等等,然后查看点的坐标是否在其中。但是现在,让我们假设我们只想查询具有
x
和y
在整个数组的最大和最小纬度和经度值范围内的文档。以下是我的查询尝试:
db.<collection-name>.find(
{'geometry.coordinates':
{$elemMatch:
{
[{$gt:-122.1}, {$lt:-122.0 }], [{$gt: 37.89 },{$lt: 37.91}]
}
}
}
)
然而,结果是:
Unexpected token [
。我试图按照这里的示例操作。
如果文档中数组的每个元素都有条件,我该如何查询这样的数组?谢谢。
[[[lon,lat],[lon,lat],[lon,lat],[lon,lat]]]
,其中双方括号[[
每对括起来。如果数据有效,则无需尝试匹配边界内的数组元素。 - Blakes Seven