如何在 Linux mongosh 命令行上指定数据库以及身份验证

How to specify a database on a Linux mongosh command line along with authentication

我有一个有点烦人的问题,应该是微不足道的,但我无法解决。我在 运行 Ubuntu Linux 系统(Focal)上;我有一个启用了身份验证的 mongo(版本 5.0.3)数据库。我找不到可以让我进入所需数据库的 mongo shell 的命令行。有人可以借给我一个线索吗?

如果我发出命令 mongosh -u mongoAdmin -p '<password>' mongodb://127.0.0.1/,我会使用测试数据库进入 mongo shell。要获取我的数据库 db-name,我需要发出命令 use db-name.

如果我发出命令 mongosh -u mongoAdmin -p '<password>' mongodb://127.0.0.1/db-name 我收到一条错误消息:

Current Mongosh Log ID: 617d0f78622b00d5095d474d
Connecting to:          mongodb://127.0.0.1/db-name?directConnection=true&serverSelectionTimeoutMS=2000
MongoServerError: Authentication failed.

我在管理数据库中配置的用户:

[
  {
    _id: 'admin.mongoAdmin',
    userId: UUID("6dbdd918-02c4-4000-b5e4-ff59db9f86ed"),
    user: 'mongoAdmin',
    db: 'admin',
    roles: [ { role: 'userAdminAnyDatabase', db: 'admin' } ],
    mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
  }
]

缺少的部分是我需要在命令行上指定身份验证数据库。此命令有效:

mongosh mongodb://127.0.0.1/db-name -u mongoAdmin -p '<password>' --authenticationDatabase admin