将文档从JSON文档数组导入MongoDB
使用 时,可以使用该参数导入 JSON 文档数组。mongoimport``--jsonArray
例
假设我们有以下名为 JSON 文档:pets_array.json
[
{"_id":1.0,"name":"Wag","type":"Dog"},
{"_id":2.0,"name":"Bark","type":"Dog"},
{"_id":3.0,"name":"Meow","type":"Cat"}
]
如果我们尝试在_不使用参数的情况下_将其导入 MongoDB,则会出现以下错误:--jsonArray
2021-01-03T13:52:58.360+1000 no collection specified 2021-01-03T13:52:58.360+1000 using filename ‘pets_array’ as collection 2021-01-03T13:52:58.366+1000 connected to: mongodb://localhost/ 2021-01-03T13:52:58.371+1000 Failed: cannot decode array into a D 2021-01-03T13:52:58.371+1000 0 document(s) imported successfully. 0 document(s) failed to import.
基本上,它无法将数组解码为文档。
要解决此问题,我们可以简单地添加参数:--jsonArray
mongoimport –db=PetHotel –jsonArray –file=pets_array.json
输出:
2021-01-03T13:58:13.407+1000 no collection specified 2021-01-03T13:58:13.408+1000 using filename ‘pets_array’ as collection 2021-01-03T13:58:13.421+1000 connected to: mongodb://localhost/ 2021-01-03T13:58:13.450+1000 3 document(s) imported successfully. 0 document(s) failed to import.
这告诉我们所有三个文档都已成功导入。
我们现在可以查看集合以检查:
db.pets_array.find()
结果:
{ “_id” : 1, “name” : “Wag”, “type” : “Dog” } { “_id” : 3, “name” : “Meow”, “type” : “Cat” } { “_id” : 2, “name” : “Bark”, “type” : “Dog” }
正如预期的那样,所有三个文档都在新创建的集合中。
该集合是新创建的,因为我们没有指定要将文档导入到的集合。如果我们有,那么它们将被导入到指定的集合中。
没有 ?mongoimport
mongoimport是 MongoDB 数据库工具包的一部分。MongoDB数据库工具是一套用于使用MongoDB的命令行实用程序。
如果您不确定是否安装了MongoDB数据库工具/,请尝试在终端或命令提示符下运行以下命令进行检查:mongoimport
mongoimport --version
如果有,您应该会看到版本信息等。如果您没有它,您可以使用MongoDB网站上的安装说明将其安装到您的系统上。
在哪里运行命令?mongoimport
您需要从系统的命令行(例如,新的终端或命令提示符窗口)运行命令。mongoimport
不要从 shell 运行它们。mongo