killAllSessionsByPattern¶3.6版的新功能。
该killAllSessionsByPattern命令将杀死与任何指定模式匹配的所有会话。[1]
该命令具有以下语法:
该命令采用一系列文档,这些文档指定要匹配的模式:
| 图案 | 描述 |
|---|---|
{ lsid: { id : <UUID> } } |
指定要杀死的会话ID的UUID部分。 |
{ uid: <BinData> } |
指定要杀死的会话的所有者的哈希。 |
{ users: [ { user: <user>, db: <dbname> }, ... ] } |
指定要杀死的会话的所有者。需要其他特权。请参阅 访问控制。 |
{ roles: [ { role: <role>, db: <dbname> }, ... ] } |
指定分配给要杀死的会话所有者的角色。需要其他特权。请参阅 访问控制。 |
指定一个空数组以终止所有会话。[1]
要查看现有会话,请参阅$listSessions操作或
$listLocalSessions。
也可以看看
| [1] | (1,2)的killAllSessionsByPattern操作忽略具有会话
交易中的准备状态。有关详细信息,请参见行为。 |
终止会话将终止会话中正在进行的所有操作,并关闭与这些操作关联的所有打开的游标。
被终止的会话可能仍被列为当前会话,以后的操作可能会使用被终止的会话。要查看现有会话,请参阅
$listSessions操作或$listLocalSessions。
该killAllSessionsByPattern操作将忽略具有处于准备状态的事务的会话。处于准备状态的事务是指具有跨越多个分片的写操作的事务,这些分片的提交协调器已完成。"sendingPrepare"
action
如果部署强制执行身份验证/授权,则必须具有killAnySession运行
killAllSessionsByPattern命令。
对于包含users或的模式roles,您还必须具有授予impersonate对群集资源的操作权限的特权。
注意
即使没有killAnySession特权操作,用户也可以杀死自己的会话
。