2017-06-12 42 views
0

我有几十个我的同事给JSON文件,他们是逗号分隔的文件,像下面这样:如何将逗号分隔的JSON文档导入到Mongodb中?

{ 
    "_id" : ObjectId("566a8d08b9ac7b7dc2ddb90a"), 
    "login_ip" : "180.173.143.x", 
    "login_time" : NumberLong("1478757697373"), 
    "logout_time" : NumberLong("1478757878035"), 
    "role" : NumberInt("5"), 
    "server_ip" : "115.28.94.x", 
    "thirdPartyId" : NumberInt("-1"), 
    "ver" : NumberInt("1036") 
}, 
{ 
    "_id" : ObjectId("566a8d0db9ac7b7dc2ddb90b"), 
    "login_ip" : "116.226.162.x", 
    "login_time" : NumberLong("1456103011531"), 
    "logout_time" : NumberLong("1456111567354"), 
    "role" : NumberInt("10002"), 
    "server_ip" : "115.28.94.x", 
    "thirdPartyId" : NumberInt("6"), 
    "ver" : NumberInt("1056") 
}, 
... 

我试图将其导入到我本地的MongoDB与mongoimport的工具,但它有麻烦找到第二个文档的起始位置,抱怨这些文件的语法,尽管事实上第一个文档被分析到数据库中。

+ mongoimport.exe --db eques --collection users_2017_04_25 --type json --bypassDocumentValidation --file 'E:\sample\mongdo/users_2017_04_25.json' 
2017-06-12T14:01:32.029+0800 connected to: localhost 
2017-06-12T14:01:32.040+0800 Failed: error processing document #2: invalid character ',' looking for beginning of value 
2017-06-12T14:01:32.040+0800 imported 0 documents 

PS:有很多文件需要导入,请不要建议我把它们变成JSON数组。

请帮忙。

+0

嗯,他们已经是JSON文件。 –

+0

@NeilLunn所以呢?请建议我! –

+0

他们看起来像你上面显示的“完全”吗?如果是这样,那么这是无效的JSON。它看起来像有人用mongodb外壳输出输出,这当然是在这里做的错误的事情。因此,这需要一些预处理来实际使它们工作。鉴于可能的来源,是否有任何方法可以重新编写出口?这将是最简单的过程。 –

回答

0

上面的JSON文档在BSON中大部分表示mongoimport工具不明白。

您应该首先以标准JSON格式导出数据(在Mongo世界中,它的名称为Strict mode),然后将其提供给mongoimport工具。