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

标签 mongodb createuser

我是 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”可用性,并仅在检查时运行我的脚本 block 失败。

最佳答案

试试这个:

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

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

关于mongodb - 仅当 MongoDB 中不存在时才创建用户(简单示例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70241431/

相关文章:

postgresql - 为 PostgreSQL 用户设置空白密码

MongoDB 删除 MapReduce 集合

node.js - 存储用户的个人资料详细信息

javascript - Mongodb 从 Mycollection.find().count() 返回错误;

MongoDB聚合: convert date to another timezone

azure-ad-b2c - 有什么方法可以在 Azure AD B2C 中使用 GRAPH API 批量创建或删除用户

python - 在 Django 中创建用户时出现以下错误 : type object 'User' has no attribute 'objects'

java - 这是一个很好的做法和选择 :Sending a Hash Map object or a JSON from java servlet to jsp?

未指定用户名的 PostgreSQL `createuser`

postgresql - 我如何解决这个问题来使用 psql? | psql : error: FATAL: role "postgres" does not exist