如何为聚合搜索搜索/索引多个地理位置位置



我正在使用$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] },
    }],

搜索将找到最接近的结果的位置。有没有理想的方法可以做到这一点?

谢谢

如果要使用 $geoNear,应考虑重新设计数据模型。 $geoNear将返回最近的位置(已排序(,并且需要地理空间索引。

建议为每个营业地点存储一个文档条目。

您可能还会发现教程:地理空间很有用,尤其是示例。

最新更新