MongoDB仅当用户不存在时才创建的简单实现示例
幂等性MongoDB用户创建脚本实现
核心逻辑是通过db.getUser()方法查询指定库下的用户是否存在,查询结果为空时再执行创建操作,适配你当前使用的MongoDB 4.2版本环境。
修改后的完整脚本如下:
// MongoDB shell version v4.2.17 // 切换到testdb库 db = db.getSiblingDB('testdb'); const targetUser = 'testuser'; // 检查目标用户是否已存在 const isUserExist = db.getUser(targetUser) !== null; if (!isUserExist) { // 用户不存在时执行创建 db.createUser( { user: targetUser, pwd: 'testpass', roles: [ 'readWrite' ] } ); print(`用户${targetUser}创建完成`); } else { print(`用户${targetUser}已存在,跳过创建流程`); }
补充说明:
- 用户名统一提取为变量
targetUser,后续调整用户名只需修改一处,避免多处修改出现拼写不一致的问题 - 脚本运行时会输出对应操作日志,可直接确认执行结果
- 若有需要同步更新已存在用户的密码、权限的需求,可在else分支添加
db.updateUser()逻辑实现
内容的提问来源于stack exchange,提问作者Vab
相关产品推荐
相关产品推荐

