我有一个 mongo 查询来检查一个点是否在一个多边形内。
neighborhood = db.collection.findOne({
loc: {$geoInteresects: {$geometry: {
type: 'Point',
coordinates: [lng, lat]
}}}
})
目前,我所有的多边形都只是一个层次,一个邻域,而且没有一个重叠。
我想开始将城市、县和国家/地区数据存储在同一个集合中。显然,我可以将 findOne 更改为 find 并适当地修改代码,但是,特别是,我希望结果对匹配项进行排序,因此结果是:[ "Downtown", "San Francisco", "California", "美国”、“北美”]
对我来说,从中构建一个漂亮的字符串是微不足道的。
我还没有设置我的多级多边形,所以我还没有测试过。
我知道 $near 运算符返回到对象的最近点,并且可以排序,但我的假设是,通过阅读文档,由于我的测试点在 polgyon 内,排序顺序将是未定义的,我也运行还有获得附近多边形的风险,然后我必须检查第二个地理相交以确保我们不在其中。