Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json Mongodb-多级键:集合中的值对_Json_Mongodb_Schema - Fatal编程技术网

Json Mongodb-多级键:集合中的值对

Json Mongodb-多级键:集合中的值对,json,mongodb,schema,Json,Mongodb,Schema,我试图存储一个集合,mongodb具有多级键:值对,即JSON字符串中的JSON字符串。计划结构如下 { a : b, a : { a:{ a:b, a:b, } a:b, a:{ a:b, a:b, a:{ a:b,

我试图存储一个集合,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
有评论的问题、有评论的答案、对每一个问题的投票、时间戳等很难从您给出的示例中分辨出来,但一般来说,Mongodb最适合您所描述的情况类型。有几次mongodb非常有用:

  • 当您有名称、类型或字段数都有较大版本的文档时(想想标准sql数据库中的行)
  • 当您的文档总是在逻辑上加载到其他文档的上下文中时。例如,如果您总是在该用户的上下文中加载该用户的地址,而从不单独加载,则将其作为用户的子文档是有意义的
  • 当这两个都是真的。尤其是那时

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