Mongodb 我想在Docker容器上执行mongoimport

Mongodb 我想在Docker容器上执行mongoimport,mongodb,macos,docker,Mongodb,Macos,Docker,我用Docker开发 docker exec-it mongo 我想将数据从JSON文件导入MongoDB,但失败了 命令是 mongoimport-d-c——文件xxx.json 我能做什么?根据您的描述,似乎 您的主机中有一个json格式的数据文件,您希望将该数据导入到容器中运行的mongodb中 您可以按照以下步骤进行操作 #>docker exec -it <container-name> mongo #>docker cp xxx.json <contai

我用Docker开发

docker exec-it mongo

我想将数据从JSON文件导入MongoDB,但失败了

命令是

mongoimport-d-c——文件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
docker exec-it mongo #>docker cp xxx.json:/tmp/xxx.json #>docker exec mongoimport-d-c——文件/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 exec-it sh
sh$>cat/tmp/xxx.json
sh$>mongoimport-d-c--file/tmp/xxx.json
  • 步骤1:从主机终端导航到JSON文件所在的目录
  • 步骤2:使用命令“docker cp xxx.json mongo:/tmp/xxx.json”将json文件从当前主机目录复制到容器“tmp”目录
  • 步骤3:使用命令“docker container exec-it mongo bash”导航到容器命令shell
  • 步骤4:使用命令“mongoimport--uri=“
    ”-collection=
    --file/tmp/xxx.json”将集合从“tmp”文件夹导入容器数据库
在不复制文件的情况下运行:

docker exec -i <container-name-or-id> sh -c 'mongoimport -c <c-name> -d <db-name> --drop' < xxx.json
docker exec-ish-c'mongoimport-c-d--drop'
你能分享失败的消息吗?正确的命令是
#>docker cp xxx.json:/tmp/xxx.json
谢谢现在回答中的ThanksUpdated,ThanksSomehow第二行最后出现了
未捕获的异常:SyntaxError:意外的令牌:标识符:
,原因是什么?这不是一个好的答案,因为它没有解释。但它确实有效k代表我。失败:(未经授权)命令删除需要身份验证当对某人花时间准备的答案进行向下投票时,还请花时间以评论的形式添加一些建设性的反馈。这有助于人们了解如何改进他们提供的答案,并允许堆栈溢出社区继续发展。