Docs HomeMongoDB Manual

dropConnections

Definition定义

dropConnections

New in version 4.2. 4.2版新增。

The dropConnections command drops the mongod / mongos instance's outgoing connections to the specified hosts. dropConnections命令会删除mongod/mongos实例到指定主机的传出连接。The dropConnections must be run against the admin database.dropConnections必须针对管理数据库运行。

Syntax语法

The command has following syntax:该命令具有以下语法:

db.adminCommand(
{
dropConnections: 1,
hostAndPort : [ "host1:port1", "host2:port2", ... ],
comment: <any>
}
)

Command Fields命令字段

The command requires the following field:该命令需要以下字段:

Field字段Type类型Description描述
hostAndPortarrayEach array element represents the hostname and port of a remote machine.每个数组元素表示远程机器的主机名和端口。
commentanyOptional.可选的。
A user-provided comment to attach to this command. Once set, this comment appears alongside records of this command in the following locations:要附加到此命令的用户提供的注释。设置后,此注释将与此命令的记录一起显示在以下位置: A comment can be any valid BSON type (string, integer, object, array, etc). 注释可以是任何有效的BSON类型(字符串、整数、对象、数组等)。
New in version 4.4. 4.4版新增。

Access Control访问控制

If the deployment enforces authentication/authorization, the dropConnections command requires the dropConnections action on the cluster resource.

Create a user-defined role in the admin database where the privilege array includes the following document:

{ "resource" : { "cluster" : true } }, "actions" : [ "dropConnections" ] }

For example, the following operation creates a user-defined role on the admin database with the privileges to support dropConnections:

db.getSiblingDB("admin").createRole(
{
"role" : "dropConnectionsRole",
"privileges" : [
{
"resource" : { "cluster" : true },
"actions" : [ "dropConnections" ]
}
],
"roles" : []
}
)

Assign the custom role to a user on the admin database:

db.getSiblingDB("admin").createUser(
{
"user" : "dropConnectionsUser",
"pwd" : "replaceThisWithASecurePassword",
"roles" : [ "dropConnectionsRole" ]
}
)

The created user can execute dropConnections.

For more examples of user creation, see Create a User. For a tutorial on adding privileges to an existing database user, see Modify Access for an Existing User.

Behavior行为

dropConnections silently ignores hostAndPort elements that do not include both the hostname and port of the remote machine.

Example实例

Consider a replica set with a recently removed member at oldhost.example.com:27017. Running the following dropConnections command against each active replica set member ensures there are no remaining outgoing connections to oldhost.example.com:27017:

db.adminCommand(
{
"dropConnections" : 1,
"hostAndPort" : [
"oldhost.example.com:27017"
]
}
)

The command returns output similar to the following:

{
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1551375968, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1551375968, 1)
}

You can confirm the status of the connection pool for the mongod or mongos using the connPoolStats command.