我使用Docker进行开发。
docker exec -it <My-Name> mongo
我想从JSON文件中将数据导入到MongoDB,但是失败了。
命令为:
mongoimport -d <db-name> -c <c-name> --file xxx.json
我该怎么办?
根据您的描述,您的主机上有一个JSON格式的数据文件,并且您想将这些数据导入正在容器中运行的mongodb中。
您可以按照以下步骤执行此操作。
#>docker exec -it <container-name> mongo
#>docker cp xxx.json <container-name-or-id>:/tmp/xxx.json
#>docker exec <container-name-or-id> mongoimport -d <db-name> -c <c-name> --file /tmp/xxx.json
在最后一步,您必须使用容器中可用的文件路径。
如果需要更多调试,您可以登录到容器中并像在Linux机器上执行一样执行。#>docker exec -it <container-name-or-id> sh
sh $>cat /tmp/xxx.json
sh $>mongoimport -d <db-name> -c <c-name> --file /tmp/xxx.json
#>docker cp xxx.json <container-name-or-id>:/tmp/xxx.json
。谢谢。 - Chars Davy无需复制文件即可运行:
docker exec -i <container-name-or-id> sh -c 'mongoimport -c <c-name> -d <db-name> --drop' < xxx.json
<mongodb连接URI
>" —collection=<集合名称
> --file /tmp/xxx.json”将"tmp"文件夹中的集合导入容器数据库。mongoimport --uri=<connection-string> --collection=<collection-name> --file=<path-to-file>
例子:
mongoimport --uri="mongodb://localhost:27017/test" --collection=books --file:"C:\Data\books.json"
有关mongoimport的更多详细信息,请参见https://www.mongodb.com/docs/database-tools/mongoimport/