J'utilise Docker pour développer.
docker exec -it <My-Name> mongo
Je souhaite importer les données vers MongoDB à partir d'un fichier JSON, mais cela échoue.
La commande est
mongoimport -d <db-name> -c <c-name> --file xxx.json
Que puis-je faire?
Avec votre description, il semble que vous ayez un fichier de données au format json dans votre machine hôte et que vous souhaitiez importer ces données dans mongodb qui s'exécute dans un conteneur.
Pour ce faire, vous pouvez suivre les étapes suivantes.
#>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
Dans la dernière étape, vous devez utiliser le chemin d'accès au fichier disponible dans le conteneur.
Pour déboguer davantage si nécessaire, vous pouvez vous connecter au conteneur et exécuter comme vous le faites sur les machines 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
Exécuter sans copier le fichier:
docker exec -i <container-name-or-id> sh -c 'mongoimport -c <c-name> -d <db-name> --drop' < xxx.json
<mongodb connection uri
> "—Collection = <c-name
> --file /tmp/xxx.json "