Mongo导入将所有数据保存在单个对象

时间:2017-06-17 17:07:05

标签: json mongodb mongoose-schema

我运行了一个mongo import命令来导入我的json文件,但所有数据都保存在一个对象下。

mongoimport -d DB NAME -c COLLECTION NAME --type json --file FILE PATH --host MY MONGO LAB HOST --port 27892 -u MYUSER -p MYPASSWORD

但现在当我在mongorobot看到db时

JSON

 {
"-Kbr7KouYOL_a9NIAyPV" : {
"correctas" : [ 1 ],
"creator_name" : "kk",
"game_name" : "Elrubius",
"jugado" : 62,
"opciones1" : [ "Por usar una pistola falsa" ],
"opciones2" : [ "Por matar" ],
"opciones3" : [ "Por robar" ],
"opciones4" : [ "Por estar tomando alcol" ],
"preguntas" : [ "Elrubius porque fue detenido" ],
"premium" : false
},
"-Kbr8RJMSCv95m6TS4Of" : {
"correctas" : [ 2 ],
"creator_name" : "CRIATURITA",
"game_name" : "ELRUBIOSOMG",
"jugado" : 34,
"opciones1" : [ "Carlos" ],
"opciones2" : [ "Ruben" ],
"opciones3" : [ "Jorge" ],
"opciones4" : [ "Chavez" ],
"preguntas" : [ "Como se llama elrubiusomg?" ],
"premium" : false
},
  • 将所有数据存储在单个对象下是错误的吗?
  • 我该如何避免这种情况?

由于

2 个答案:

答案 0 :(得分:1)

问题是您将文档合并到一个文档中。

您的格式(缩进)会隐藏您正在执行的操作。但是......这就是你正在使用的问题(为了简洁而删除了一些属性):

{
    "-Kbr7KouYOL_a9NIAyPV": {
        "creator_name": "kk",
        "game_name": "Elrubius",
        "jugado": 62,
        "premium": false
    },
    "-Kbr8RJMSCv95m6TS4Of": {
        "creator_name": "CRIATURITA",
        "game_name": "ELRUBIOSOMG",
        "jugado": 34,
        "premium": false
    }
}

这只会给你一个包含大量子文档的巨型文档。最终,您将超过单个文档的大小。

此外,您构建JSON的方式是为每个文档创建唯一的属性名称:

  • -Kbr7KouYOL_a9NIAyPV
  • -Kbr8RJMSCv95m6TS4Of

我怀疑这是你的意图;你永远无法对其进行查询,因为每个文档都有一个唯一的属性名称。

您需要修复JSON以表示几个单独的文档。并修复该唯一ID,以便查询。类似的东西:

{
    "id": "-Kbr7KouYOL_a9NIAyPV",
    "creator_name": "kk",
    "game_name": "Elrubius",
    "jugado": 62,
    "premium": false
}
{
    "id": "-Kbr8RJMSCv95m6TS4Of",
    "creator_name": "CRIATURITA",
    "game_name": "ELRUBIOSOMG",
    "jugado": 34,
    "premium": false
}

然后您可以导入这组文档。

请注意,在我的示例中,我添加了id属性。如果您没有指定一个属性,MongoDB会创建一个唯一的_id属性。因此,如果要覆盖MongoDB的保证唯一属性,可以在上面的示例中将id替换为_id

答案 1 :(得分:0)

我很快意识到这是Firebase数据库格式。真是一团糟 ?您付钱给他们提取数据库,这就是他们给您的。我和你在一起:-(我无法修复2 GB的json文件以使其与Mongo兼容。

相关问题