MongoDB Session会话管理
一、MongoDB abortTransaction 命令
该命令回滚由终止多文档事务的事务中的操作所做的任何数据更改。即事务中进程所做的更改尚未保存。
abortTransaction 命令必须在会话中运行并针对 admin 数据库运行。
事务中的所有数据更改都将被拒绝,而不会在事务结束时出现。
语法:
{
abortTransaction: 1,
txnNumber: <long>,
writeConcern: <document>,
autocommit: false
}
二、MongoDB commitTransaction 命令
该命令用于保存操作所做的更改。
要运行 commitTransaction 命令,它必须在会话中运行并针对 admin 数据库运行。
您可以改用 session.commitTransaction()。
在事务开始时,事务中所做的所有数据更改都会显示并保存在事务之外。
语法:
{
commitTransaction: 1,
txnNumber: <long>,
writeConcern: <document>,
autocommit: false
}
三、MongoDB endSessions 命令
该命令用于结束指定的会话。它会覆盖会话在过期之前等待的超时时间。
为了识别要结束的用户会话,MongoDB连接每个指定的 UUID。
语法:
{ endSessions: [ { id : <UUID> }, ... ] } )
上述方法用于运行 endSessions。
db.runCommand( { endSessions: [ { id : <UUID> }, ... ] } )
四、MongoDB killALLSessions 命令
命令 killAllSession 中止指定用户的所有正在运行的会话。它需要一组文档,其中每个文档指定用户和用户的身份验证数据库。
语法:
db.runCommand( { killAllSessions: [ { user: <user>, db: <dbname> }, ... ] } )
五、MongoDB killAllSessionByPattern 命令
该命令终止与参数中任何指定模式匹配的所有正在运行的会话。
您终止会话时,它会终止会话中任何正在进行的操作并关闭所有打开的游标。
语法:
db.runCommand( { killAllSessionsByPattern: [ <pattern>, ... ] } )
语法 | 描述 |
---|---|
{ lsid: { id : <UUID> } } | 它定义了要终止的会话 id 的 UUID 部分。 |
{ uid: <BinData> } | 它定义了要被杀死的会话所有者的哈希值。 |
{ users: [ { user: <user>, db: <dbname> }, ... ] } | 这定义了要杀死的会话的所有者,并且需要额外的权限。 |
{ roles: [ { role: <role>, db: <dbname> }, ... ] } | 这定义了允许杀死会话所有者的角色。 |
六、MongoDB refreshSessions 命令
命令 ss 用于通过扩展会话的活动状态来更新指定会话的最终使用时间。
经过身份验证的用户凭据用于刷新已识别用户的会话。
语法:
{ refreshSessions: [ { id : <UUID> }, ... ] } )
使用 db.runCommand( { <command> } ) 方法,该命令用于运行 refreshSessions。
db.runCommand( { refreshSessions: [ { id : <UUID> }, ... ] } )
七、MongoDB startSession 命令
startSession 命令用于为一系列操作启动一个新的逻辑会话。
您必须经过身份验证才能运行命令,如果部署不强制执行身份验证或授权,则创建的对象没有所有者,任何用户都可以通过任何连接使用。
语法:
{ startSession: 1 }
使用 db.runCommand( { <command> } ) 方法,它用于运行 startSession。
db.runCommand( { startSession: 1 } )
热门文章
优秀文章