【问题标题】:Mongodb - Multilevel key:value pairs in a collectionMongodb - 集合中的多级键:值对
【发布时间】:2014-05-16 04:26:37
【问题描述】:

我正在尝试使用 mongodb 存储一个集合,该集合具有多级键:值对,即 JSON 字符串中的 JSON 字符串。以下是计划中的结构。

{
  a : b,
  a : {
          a:{
              a:b,
              a:b,  
            }
          a:b,
          a:{
               a:b,
               a:b,
               a:{
                   a:b,
                   a:b,
                   a:b
                 } 
            }
      }
}

这里 a 和 b 是不同的字段,其中会有更多的字段。我基本上是在尝试避免使用多个表,并像 MySQL 那样具有关系约束,并将它们放在一个集合中。我知道 Mongo 的无模式设计功能,但遵循相同的做法是不好的做法吗?

编辑:实际用例的示例:Stackoverflow 有 cmets 的问题、有 cmets 的答案、对每个相同的投票、时间戳等

【问题讨论】:

  • 您给出的示例中的可怕做法。以您显示的方式嵌套文档使得几乎不可能以任何有意义的方式进行查询。你最好用接近实际数据的东西来解释一个实际用例。

标签: json mongodb schema


【解决方案1】:

从您给出的示例中很难看出,但总的来说,Mongodb 最适合您所描述的情况类型。几次mongodb超级有用:

  • 当您的文档(想想标准 sql 数据库中的行)在名称、类型或字段数量方面具有很大的多样性时
  • 当您的文档总是在逻辑上加载到其他文档的上下文中时。例如,如果您总是在该用户的上下文中加载用户的地址,而不是单独加载,那么将其作为用户的子文档是有意义的。
  • 当这两个都成立时。尤其是那时。

【讨论】:

    猜你喜欢
    • 2016-07-25
    • 2023-04-10
    • 2011-06-05
    • 1970-01-01
    • 2014-09-29
    • 2019-08-01
    • 2018-03-15
    • 2012-05-21
    • 2016-11-11
    相关资源
    最近更新 更多