mongodb没有按预期导入json

时间:2016-04-05 07:52:09

标签: json mongodb

我一直试图用这个

导入一个json

mongoimport --upsert --db mydb --jsonArray --file AllCards.json

但我得到的是

  

"导入0个对象"

我得到一个包含0个元素的数据库。

使用JSON查看器加载时,正确读取了相同的JSON文件。

这是我收到的错误消息的一部分

  

异常:传递给mongoimport的JSON无效:代码FailedtoParse:> FailedtoParse:Excpecting' {&#39 ;: offset:0 of:

我试图导入的JSON文件有6MB,但我一直在修剪它以试图找到问题。即使有这样的内容,问题仍然存在:

{
  "Air Elemental": {
    "layout": "normal",
    "name": "Air Elemental",
    "manaCost": "{3}{U}{U}",
    "cmc": 5,
    "colors": ["Blue"],
    "type": "Creature — Elemental",
    "types": ["Creature"],
    "subtypes": ["Elemental"],
    "text": "Flying",
    "power": "4",
    "toughness": "4",
    "imageName": "air elemental",
    "colorIdentity": ["U"]
  },
  "Ancestral Recall": {
    "layout": "normal",
    "name": "Ancestral Recall",
    "manaCost": "{U}",
    "cmc": 1,
    "colors": ["Blue"],
    "type": "Instant",
    "types": ["Instant"],
    "text": "Target player draws three cards.",
    "mciNumber": "1",
    "imageName": "ancestral recall",
    "colorIdentity": ["U"]
  }
}

2 个答案:

答案 0 :(得分:1)

jsonArray选项要求输入是JSON文档的数组,即文件中的顶级对象是数组。您输入的情况并非如此。

如果您只想要每行一个JSON文档(使用当前的mongodb版本),这是默认的mongoinport格式 - 您不需要传递任何选项来请求它。删除FrameLayout,你应该没问题。

答案 1 :(得分:0)

我正在做mongoimport --upsert --db jason --collection contacts --file omuk.json 它工作正常。 发现它:

2016-04-05T14:34:19.305+0600    connected to: localhost
2016-04-05T14:34:19.314+0600    imported 1 document