如何将逗号分隔的JSON文档导入到Mongodb中?
问题描述:
我有几十个我的同事给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数组。
请帮忙。
答
上面的JSON文档在BSON中大部分表示mongoimport
工具不明白。
您应该首先以标准JSON格式导出数据(在Mongo世界中,它的名称为Strict mode),然后将其提供给mongoimport
工具。
嗯,他们已经是JSON文件。 –
@NeilLunn所以呢?请建议我! –
他们看起来像你上面显示的“完全”吗?如果是这样,那么这是无效的JSON。它看起来像有人用mongodb外壳输出输出,这当然是在这里做的错误的事情。因此,这需要一些预处理来实际使它们工作。鉴于可能的来源,是否有任何方法可以重新编写出口?这将是最简单的过程。 –