setUserWriteBlockMode
定义
setUserWriteBlockMode
6.0 版本中的新功能。
setUserWriteBlockMode
命令会阻止和取消阻止对整个集群的写入。在Cluster-to-Cluster Sync期间,
mongosync
(集群到集群同步工具)使用setUserWriteBlockMode
命令阻止对目标集群的写入。 有关更多信息,请参阅 HTTP API 启动命令。注意
具有
bypassWriteBlockingMode
权限的用户和应用程序可以绕过该区块并继续执行写入。
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
重要
MongoDB Atlas集群不支持此命令。有关Atlas支持所有命令的信息,请参阅不支持的命令。
语法
该命令具有以下语法:
db.adminCommand( { setUserWriteBlockMode: 1, global: <boolean> } )
命令字段
该命令接受以下字段:
字段 | 类型 | 说明 |
---|---|---|
setUserWriteBlockMode | 整型 | 将此字段设置为 1 。 |
global | 布尔 | 设置为 true 时阻止写入集群。 要启用对集群的写入,请设置global: false 。 |
必需的访问权限
要执行setUserWriteBlockMode
命令,用户必须具有setUserWriteBlockMode
特权。
例子
启用用户写入阻止模式:
db.adminCommand( { setUserWriteBlockMode: 1, global: true } ) 向collection添加一条记录:
db.names.insertOne( { name: "George Washington Cable" } ) 服务器阻止写入,因为已启用用户写入阻止。
示例输出:
MongoServerError: User writes blocked 禁用用户写入块模式:
db.adminCommand( { setUserWriteBlockMode: 1, global: false } ) 向collection添加一条记录:
db.names.insertOne( { name: "George Washington Cable" } ) insertOne()
方法可写入集合。 服务器允许写入,因为用户写入块已禁用。