Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

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特权。

  1. 启用用户写入阻止模式:

    db.adminCommand( {
    setUserWriteBlockMode: 1,
    global: true
    } )
  2. 向collection添加一条记录:

    db.names.insertOne( { name: "George Washington Cable" } )

    服务器阻止写入,因为已启用用户写入阻止。

    示例输出:

    MongoServerError: User writes blocked
  3. 禁用用户写入块模式:

    db.adminCommand( {
    setUserWriteBlockMode: 1,
    global: false
    } )
  4. 向collection添加一条记录:

    db.names.insertOne( { name: "George Washington Cable" } )

    insertOne()方法可写入集合。 服务器允许写入,因为用户写入块已禁用。

后退

setQuerySettings