mongoimport错误,失败:无效的JSON输入

时间:2019-12-17 19:50:30

标签: javascript regex mongodb

我有很多下面的mongodb实例文件;

[
{ 
    "_id" : ObjectId("35d455de983c0e6a53ea0848"), 
    "createdAt" : ISODate("2019-12-05T23:25:04.347+0000"), 
    "__v" : NumberInt(0)
},
{ 
    "_id" : ObjectId("1ecbe0f75df8ccd52a7b1662"), 
    "createdAt" : ISODate("2019-12-17T12:40:53.521+0000"), 
    "__v" : NumberInt(0)
}
]

由于格式无效,我无法导入这些文件。

mongoimport --db DATABASENAME --collection COLLECTIONNAME --file filename.json --jsonArray

它说;

  

失败:无效的JSON输入。位置:16。字符:O

还有其他导入这些文件的方法吗?

如果没有,如何将它们转换为导入?

3 个答案:

答案 0 :(得分:11)

您可以使用mongoimport的--legacy选项,以便使用ObjectId(“ an oid”),NumberInt(int)或new Date(“ iso iso date”或任何mongo扩展名)以所需格式导入文件在扩展json v1中可用:https://docs.mongodb.com/manual/reference/mongodb-extended-json-v1/

答案 1 :(得分:0)

解决方案1 ​​(半自动):

我们只能以json / csv格式导入数据库,因此请删除所有无效字符,例如ObjectIdISODateNumberInt() ...

解决方案2 (自动):

最后,我找到了替代解决方案。

即使在Mongo Compass中,我们也无法导入此类数据。

但是幸运的是,我们可以以Studio 3T for MongoDB的各种格式导入/导出数据库。

我认为Studio 3T比Mongo Compass更好。 :D

答案 2 :(得分:0)

我有同样的问题,错误是关于猫鼬自动添加的名为“ $ init”的属性。 我通过Sublime删除了所有这些文件,然后由3T再次导入。