我有很多下面的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
还有其他导入这些文件的方法吗?
如果没有,如何将它们转换为导入?
答案 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格式导入数据库,因此请删除所有无效字符,例如ObjectId
,ISODate
,NumberInt
,()
...
解决方案2 (自动):
最后,我找到了替代解决方案。
即使在Mongo Compass中,我们也无法导入此类数据。
但是幸运的是,我们可以以Studio 3T for MongoDB的各种格式导入/导出数据库。
我认为Studio 3T比Mongo Compass更好。 :D
答案 2 :(得分:0)
我有同样的问题,错误是关于猫鼬自动添加的名为“ $ init”的属性。 我通过Sublime删除了所有这些文件,然后由3T再次导入。