updateUser(更新用户)
最后更新:2026-10-09
updateUser(更新用户)
updateUser修改已有用户:重置密码、更换角色、更新customData。只更新传入的字段,未传字段保持不变;注意roles是整体替换,传入新列表会覆盖旧角色。mongosh中用db.updateUser(user, { pwd, roles, customData })。需要userAdmin或root权限。
| 分类 | 用户认证 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.updateUser("<用户名>", { pwd: "<新密码>" })
db.updateUser("<用户名>", { roles: [ { role: "readWrite", db: "shop" } ] })
⚙️ 参数
| pwd | 新密码 |
|---|---|
| roles | 新角色列表,整体替换旧角色 |
| customData | 任意自定义元数据 |
返回值:返回{ ok: 1 }表示更新成功
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// updateUser:重置密码并追加库角色
use admin
db.updateUser('reader', {
pwd: 'newpass456',
roles: [ { role: 'read', db: 'shop' }, { role: 'read', db: 'analytics' } ]
})
运行结果:
{ ok: 1 }
📌 注意事项
- 未传的字段保持不变,只更新传入字段
- roles是整体替换,忘写旧角色就丢了
- 需要userAdmin或root权限
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QupdateUser会覆盖角色吗?
A会,roles是整体替换,新列表要包含所有想保留的角色。
Q只改密码怎么写?
A只传pwd字段,其余字段保持不变。
Q需要什么权限?
A对该库的userAdmin或root权限。