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 } )  

 

热门文章

优秀文章