mongodb - 在 MongoDB 中存储国家/地区城市

标签 mongodb drop-down-menu database nosql

我目前正在构建数据库以存储国家-州-城市信息,这些信息稍后会在我们网站的下拉菜单中使用。

我想就我决定的模式获得一些关于它的工作效率的建议。

我正在使用 MongoDB 来存储数据。

我设计的架构如下:

{
_id: "XXXX",
country_name: "XXXX",
some more fields
state_list:[
    {
        state_name: "XXXX",
        some more fields
        city_list:[
            {
                city_name : "XXXX",
                some more fields
            },
            {
                city_name : "XXXX",
                some more fields
            }

        ]

    }
]

数据会越来越多。每个州还有一长串城市列表。

此架构对于预期目的的效果如何?

我应该使用链接文档技术(这将需要手动编码来映射 _id)吗?

最佳答案

我建议将它保留在国家/地区相对于州的 1-N,而城市则与 stateid 分开收集。 您将拥有每个国家的州数量有限,而州将拥有许多城市。 将城市嵌入州,然后将州嵌入国家将使国家集合变得过于庞大。 进行模式设计的通用概念基于以下标准:

  1. 1-Few(在这种情况下,将集合嵌入到父对象中。

  2. 1-many(在这种情况下,在父集合中创建 id 数组并将子集合保持独立。

  3. 1- scillions(在这种情况下,将父 id 保存在子对象中,并将它们作为单独的集合保存。

link解释得更好。

关于mongodb - 在 MongoDB 中存储国家/地区城市,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32197603/

相关文章:

php - 使用输入法向数据库时间列添加年份

大量简单记录的数据库和设计协助

database - 破译数据库模式

mongodb - MongoDB Mapreduce 是否总是以 float 形式返回结果?

MongoDB二级完全跟不上

javascript - 使用下拉菜单滑动的水平菜单

html - 下拉 CSS 冲突

php - 根据下拉选择的结果填充文本字段 - 均使用 php mysql ajax 请求

python - mongodb, pymongo 查询

mongodb - Grails - 使用身份验证连接到 MongoDB 数据库