【问题标题】:Cant import data into mongo database using mongoimport无法使用 mongoimport 将数据导入 mongo 数据库
【发布时间】:2018-03-26 23:15:56
【问题描述】:

我无法将数据导入到位于 mongoDBAtlas 上的现有数据库中。我安装了 robomongo 并将其与 mongoDBAtlas 连接以使用 atlas。

然后我在 robomongo 中创建了新数据库 jasper 和集合 User 我在存储我的数据的项目中创建了 user.json 文件。

我按照https://docs.atlas.mongodb.com/import/mongoimport/ 上的教程进行操作 - 如何将 mongoimport 与 mongodb 一起使用。

这是我的命令,我在终端输入:

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       

如果我为 localhost 运行 mongoimport,它会完美运行。

问题应该出在哪里?

【问题讨论】:

  • 在 uri 连接字符串周围加上引号。你有一个&amp;,你的shell(bash,zsh,whatever)认为你的意思是不同的。
  • @NeilLunn 非常感谢您的建议。这就是问题所在:)
  • 仅供参考。任何告诉您指定authSource=admin 的文档都已过时。默认情况下,一般驱动程序(以及工具)只是这样做,所以它并不是真正需要的。如果在 admin 以外的任何地方定义了用户,这也是即将推出的 MongoDB 3.6 的兼容性问题。
  • @Morten 您可以自己发布问题的答案而不是编辑它以帮助未来的读者吗?

标签: mongodb macos robo3t mongodb-atlas


【解决方案1】:

解决方案: - 为 uri 参数使用引号。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    相关资源
    最近更新 更多