我有一个代表房子位置的任意点。在我的MongoDB中,我有一个代表不同区域的多边形集合(类似于邮政编码)。
我想返回集合中的区域,其中给定点位于该区域内。
目前我正在将这一点转换为"小"框并使用类似的查询(按预期方式工作):
(已装箱的点:[56.121371, 13.114797]
)
db.areas.find({
"area" : {
"$geoIntersects" : {
"$geometry" : {
"type" : "Polygon",
"coordinates" : [
[
[
56.120371,
13.113797
],
[
56.120371,
13.115797
],
[
56.122371,
13.115797
],
[
56.122371,
13.113797
],
[
56.120371,
13.113797
]
]
]
}
}
}
});
我尝试使用$near
,但它只适用于积分。我也试过$geoWithin
没有成功;我的猜测是它检查集合文档是否在查询中,而不是查询是否在文档中。
这应该是一个非常常见的查询,所以我想知道是否有更好的方法来做到这一点而不是创建一个"小"多边形?感觉就像是一种解决方法"。