我有一个代表点的代表房子的位置.在我的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,但没有成功;我的猜测是,它会检查集合文档是否在查询中,而不是查询是否在文档中.
这应该是一个非常常见的查询,所以我想知道是否有更好的方法来做到这一点,而不是创建一个“小”多边形?感觉就像一个“变通方法”.