仅当 MongoDB 中不存在时才创建用户(简单示例)

Create user only if not exists in MongoDB (simple example)

我是 MongoDB.js 的新手。

我有一个简单的 add_app_user.js 脚本,其中包含以下内容:

# MongoDB shell version v4.2.17
# Set the database to 'testdb'.
db = db.getSiblingDB('testdb');

# Create new user.
db.createUser(
   {
     user: "testuser",
     pwd: "testpass",
     roles: [ "readWrite" ]
   }
);

这是第一次正常工作(当这样的用户不存在时)。

我需要让它幂等。

我找不到一个简单易懂的脚本来检查 "testdb" 和 运行 我的脚本块中的 "testuser" 可用性,仅当检查失败时。

试试这个:

if (db.getUser("testuser") == null) {  
   db.createUser(
     {
     user: "testuser",
     pwd: "testpass",
     roles: [ "readWrite" ]
     }
   );
}

注意,通常用户是在 admin 数据库中创建的。其实我不知道为什么要在其他地方创建它们。