我使用$ geoNear根据用户位置搜索营业地点。然而,当我执行搜索时,Mongo只允许我索引1个地理位置,有些企业有多个位置,我希望能够转换位置索引以找到最接近的结果。
这就是我目前所拥有的:
location : {
type: { type: String, default: "Point" },
coordinates: { type: [Number], default: [115.8575,-31.953] },
},
这就是我想要的:
location : [{
name: "Suburb 1",
type: { type: String, default: "Point" },
coordinates: { type: [Number], default: [115.8575,-31.953] },
},
{
name: "Suburb 2",
type: { type: String, default: "Point" },
coordinates: { type: [Number], default: [115.8575,-31.953] },
}],
搜索会找到最接近的结果。有理想的方法吗?
由于
答案 0 :(得分:0)
如果您想使用$geoNear,则应考虑重新设计data model。 $geoNear
会返回最近的位置(已排序),并且需要geospatial-index(es)。
建议是为每个营业地点存储单个文档条目。
您可能还会发现Tutorial: Geospatial非常有用,尤其是示例。