在新的 mnogodb 中导入 json 文件

Importing json file in new fresh mnogodb

我只想问一下如何在新的 mongodb 中导入这个 example.json 文件 我希望每个 seassion 对象都作为 table 中的行 我试过

mongoimport --db foo --collection myCollections < dataBuys.json
2015-05-07T21:19:15.828+0300    connected to: localhost
2015-05-07T21:19:18.831+0300    foo.myCollections   168.5 MB
2015-05-07T21:19:21.826+0300    foo.myCollections   168.5 MB
2015-05-07T21:19:24.828+0300    foo.myCollections   168.5 MB
2015-05-07T21:19:27.828+0300    foo.myCollections   168.5 MB
2015-05-07T21:19:28.849+0300    warning: attempting to insert document      with size 124.6 MB (exceeds 16.0 MB limit)
2015-05-07T21:19:28.986+0300    error inserting documents: write tcp 127.0.0.1:27017: broken pipe
2015-05-07T21:19:28.986+0300    imported 0 documents

还有这个

mongoimport -d mydb -c mycollection --jsonArray < dataBuys.json
2015-05-07T21:20:02.139+0300    connected to: localhost
2015-05-07T21:20:02.139+0300    Failed: error reading separator after document #1: bad JSON array format - found no opening bracket '[' in input source
2015-05-07T21:20:02.139+0300    imported 0 documents

我要导入的文件格式如下,这个文件大小为 170mb,另一个文件大小为 2.97GB。

{
"Sessions": {
"420374" : {
  "Purchases" : [
    {
      "Price" : "12462",
      "Quantity" : "1",
      "Timestamp" : "2014-04-06T18:44:58.314Z",
      "ItemId" : "214537888"
    },
    {
      "Price" : "10471",
      "Quantity" : "1",
      "Timestamp" : "2014-04-06T18:44:58.325Z",
      "ItemId" : "214537850"
    }
  ]
},

"281626" : {
  "Purchases" : [
    {
      "Price" : "1883",
      "Quantity" : "1",
      "Timestamp" : "2014-04-06T09:40:13.032Z",
      "ItemId" : "214535653"
    }
  ]
},

"420368" : {
  "Purchases" : [
    {
      "Price" : "6073",
      "Quantity" : "1",
      "Timestamp" : "2014-04-04T06:13:28.848Z",
      "ItemId" : "214530572"
    },
    {
      "Price" : "2617",
      "Quantity" : "1",
      "Timestamp" : "2014-04-04T06:13:28.858Z",
      "ItemId" : "214835025"
    }
  ]
}
}
}

我必须重新格式化 json 吗?有可能让它像这样工作吗?

第一条错误消息说: 警告:尝试插入大小为 124.6 MB 的文档(超过 16.0 MB 限制)

这意味着您正在尝试插入一个大小为 124.6MB 的文档。 json 文档以左大括号字符“{”开头,以右大括号字符“}”结束。错误消息暗示这些字符之间有 124.6MB。

我认为您需要检查您的输入文件并确认每个会话对象都被定义为一个单独的文档 - 另一个词以大括号开头和结尾。

我怀疑问题在于会话对象实际上嵌入在主文档中——一种容器文档。这将使 mongoimport 尝试将主容器文档映射到它的集合 - 而不是您需要的会话对象。

首先,为了验证您的 GeoJSON 文件是否准确,您可以使用 Geojsonlint, QGIS 等等。

之后,要将数据导入您的集合,请使用 Mongoimport:

mongoimport --db MY_DATABASE_NAME -c MY_COLLECTION_NAME --type json --file "MY_GEOJSON_FILENAME"

用您的有效名称替换上面的 3 个变量。显然,请确保您的当前目录包含该文件。

赚了! :)