无法使用mongoimport将数据导入到mongo数据库中

问题描述:

我无法将数据导入位于mongoDBAtlas上的现有数据库。我用mongoDBAtlas安装并连接了robomongo,以便与地图集一起工作。无法使用mongoimport将数据导入到mongo数据库中

我在robomongo创建新的数据库碧玉和收集用户然后 我创建user.json文件在我的项目中存储我的数据。

我跟着教程https://docs.atlas.mongodb.com/import/mongoimport/ - 如何在mongodb中使用mongoimport。

这里是我的命令,林打字终端:

mongoimport --uri mongodb://Morty:<PASSWORD>@jasper-shard-00-00-mrihb.mongodb.net:27017/jasper?ssl=true&replicaSet=jasper-shard-0&authSource=admin --collection User --drop --file ./src/data/user.json --jsonArray 

,给我一个错误:

[1] 40930 
[2] 40931 
-bash: --collection: command not found 
[2]+ Done     replicaSet=jasper-shard-0 
KSC1-LMC-K00587:Interview-test-part-one marze$ 2017-10-15T10:38:35.209+0200 no collection specified 
2017-10-15T10:38:35.209+0200 using filename '' as collection 
2017-10-15T10:38:35.209+0200 error validating settings: invalid collection name: collection name cannot be an empty string 
2017-10-15T10:38:35.209+0200 try 'mongoimport --help' for more information  

如果我为运行mongoimport本地主机它完美的作品。

问题出在哪里?

+0

将引号放在uri连接字符串的周围。你有一个'&'在那里你的shell(bash,zsh,什么)认为你的意思是不同的。 –

+0

@ NeilLunn真的非常感谢您的建议。这是问题:) – Morten

+0

供参考。任何告诉你指定'authSource = admin'的文档都是过时的。一般的驱动程序(以及工具)只是在默认情况下这样做,所以它不是真的需要。这对于即将到来的MongoDB 3.6来说也是一个兼容性问题,如果有其他用户在“admin”以外的地方定义的话。 –

解决方案: -uri param的用法引号。

mongoimport --uri "mongodb://Morty:<PASSWORD>@jasper-shard-00-00-mrihb.mongodb.net:27017/jasper?ssl=true&replicaSet=jasper-shard-0&authSource=admin" --collection User --drop --file ./src/data/user.json --jsonArray