我工作的那附近的某一点搜索业务应用项目和geoIntersects:MongoDB的地理空间 - 搜索指向
文档结构目前是这样的:
{
"_id" : ObjectId("52dbcf155b67b9f80f000021"),
"name" : "Some Business Name",
"town" : "Bournemouth",
"postcode" : "BH7 4XK",
"country_code" : "UK",
"country_name" : "United Kingdom",
"geo" : {
"type" : "Point",
"coordinates" : [
-1.8185951,
50.7429735
]
}
}
这代表了企业。
的“地理”表示这是经/纬度
然后我就可以使用$near
然而,一些商家提供了一个“移动”的服务搜索与点的x英里业务。
- 即覆盖距离给定点x英里的区域。 在这种情况下,我已经想过加入一个新元素的文档:
"mobileGeo" : {
"type" : "Polygon", //I'm guessing?
"coordinates" : [] // not sure how to represent...
}
我怎么会改变我的查询,涵盖了“地理”项目,任何来自我的“mobileGeo”元素相交?
例如:
A和B被“固定”点 C表示从给定的点10英里的区域。由于此半径与“搜索”区域重叠,因此将返回结果中。
我见过`$ geoIntersects',但我不确定这是否正确?
所以,而不是“地球”和“mobileGeo”元素,我应该有“地缘”(或任何我决定将它命名) - 并有定义为多边形?我如何将单点定义为多边形? – Alex
是的,只有一个领域。您不必将另一个作为多边形,只需将其保留为点即可。 – Derick