在MongoDB中建模基于位置的标签

时间:2014-05-25 16:28:21

标签: mongodb morphia

这是我的情景:

用户将活动存储在选定位置,并向其添加一组标记。 现在,我希望获得该位置周围最受欢迎的标签列表,作为创建时对用户的建议。我不确定如何在MongoDB中建模标签以及如何查询靠近某个位置的最受欢迎的标签。

这就是我得到的:

活动与位置和所选标签列表一起存储(仅用于快速检索的标签名称)。

{
    name: <name of activity>,
    coords: [longitude,latitude],
    tags: [tag1, tag2, tag3]
}

创建活动后,我们将标记统计信息存储在单独的集合中,如下所示:

{
    name: <tag name>
    locations: [
        {
            coords: [longitude,latitude]
            count: <times added to this location>
        },
        {
            coords: [longitude2,latitude2]
            count: <times added to this location>
        }
    ]
}

目前我们正在使用Morphia运行MongoDB 2.4,但我认为升级到2.6可能是可取的,因为地理空间索引有一些改进。也许我们还需要转到本机Java驱动程序,因为看起来Morphia还没有真正存在。只要我们在模型/查询上找到一个好的解决方案,所有这些都是可能的。

0 个答案:

没有答案