3.6版的新功能。
从3.6开始,MongoDB驱动程序将所有操作与服务器会话相关联,但未确认的写入除外。以下选项可用于所有命令以支持与服务器会话的关联:
重要
在mongo
外壳和驱动程序分配这些选项在会话的命令。
选项 | 类型 | 描述 |
---|---|---|
lsid |
文献 | 指定与命令关联的会话的唯一ID的文档。如果txnNumber 指定,lsid 则为。 |
txnNumber |
64位整数 | 严格增加的非负数,用于在命令会话中唯一标识该命令。 如果指定,该命令还必须包含该 |
对于delete
,insert
和update
命令该采取语句的阵列,以下选项也可:
重要
不要手动设置stmtIds
。MongoDB将设置stmtIds
为严格增加的非负数。
选项 | 类型 | 描述 |
---|---|---|
stmtIds |
32位整数数组 | 在写命令中唯一标识其各自写操作的数字数组。 |
以下命令可用于列出,管理和终止整个MongoDB集群中的服务器会话:
指令 | 内容描述 |
---|---|
endSessions |
使指定的服务器会话到期。 |
killAllSessions |
杀死所有服务器会话。 |
killAllSessionsByPattern |
杀死所有与指定模式匹配的服务器会话。 |
killSessions |
终止指定的服务器会话。 |
refreshSessions |
刷新空闲服务器会话。 |
startSession |
开始新的服务器会话。 |
如果部署强制执行身份验证/授权,则必须对用户进行身份验证才能启动会话,并且只有该用户才能使用该会话。
在版本3.6.3中更改:要与$external
身份验证用户(即Kerberos,LDAP,x.509用户)一起使用会话,用户名不能大于10k字节。
如果部署不强制执行身份验证/授权,则创建的会话没有所有者,并且可以由任何用户在任何连接上使用。如果用户对不执行身份验证/授权的部署进行身份验证并创建会话,则该用户将拥有该会话。但是,任何连接上的任何用户都可以使用该会话。
如果部署在没有任何停机的情况下过渡到身份验证,则无法使用没有所有者的任何会话。
也可以看看