2015-05-07 59 views
1

我只是想问问我怎么能导入新的MongoDB这个example.json文件我希望让每个seassion对象行中我试图导入JSON文件

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吗?是否有可能使它像这样工作?

回答

3

第一个错误信息说: 警告:尝试与尺寸插入文件124.6 MB(超过16.0 MB限制)

这意味着您要插入的文件大小为124.6MB。 一个json文档以一个大括号字符“{”开始,并以一个大括号字符“}”结尾。错误消息意味着你在这些字符之间有124.6MB。

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

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

+0

我认为帕特是正确的,您目前的格式将无法正常工作。在这里查看另一种替代格式:http://stackoverflow.com/a/16677630/371273 –

+0

所以简单的答案是mongodb无法以这种格式导入json它应该是与像这样的对象的行数组{{“stupid”: “bla bla”,“megaStupid ”:“bla bla”} –

1

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

后比,导入数据到您的收藏,使用Mongoimport

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

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

利润! :)