Definição
- $listLocalSessions
- Novidade na versão 3.6. - Lista as sessões armazenadas em cache na memória pela instância - mongodou- mongos.- Importante- Quando um usuário cria uma sessão em uma instância do - mongodou- mongos, o registro da sessão inicialmente existe somente na memória na instância; ou seja, o registro é local para a instância. Periodicamente, a instância sincronizará suas sessões em cache com a coleção do- system.sessionsbanco de dados do- config, quando, eles são visíveis para- $listSessionse todos os membros da implantação. Até que o registro da sessão exista na coleção- system.sessions, você só pode listar a sessão por meio da operação- $listLocalSessions.- A operação - $listLocalSessionsutiliza o método- db.aggregate()e não o- db.collection.aggregate().- Para executar - $listLocalSessions, ele deve ser o primeiro estágio no pipeline.- O estágio tem a seguinte sintaxe: - { $listLocalSessions: <document> } - O estágio - $listLocalSessionsrecebe um documento com um dos seguintes conteúdos:CampoDescrição- { }- Se estiver executando com controle de acesso, retorna todas as sessões para o usuário autenticado atual. - Se estiver executando sem controle de acesso, retorne todas as sessões. - { users: [ { user: <user>, db: <db> }, ... ] }- Retorna todas as sessões para os usuários especificados. Se estiver executando com controle de acesso, o usuário autenticado deverá ter privilégios com a ação - listSessionsno cluster para listar sessões para outros usuários.- { allUsers: true }- Retorna todas as sessões para todos os usuários. Se estiver executando com controle de acesso, o usuário autenticado deverá ter privilégios com a ação - listSessionsno cluster.
Restrições
$listLocalSessions não é permitido em transações.
Exemplos
Listar todas as sessões locais
A partir do cache de sessões na memória da instância mongod / mongos conectada, a seguinte operação de aggregation lista todas as sessões:
Observação
Se estiver executando com controle de acesso, o usuário atual deve ter privilégios com a ação listSessions no cluster.
db.aggregate( [  { $listLocalSessions: { allUsers: true } } ] ) 
Listar todas as sessões locais para os usuários especificados
A partir do mongod mongos cache na memória da instância conectada, a seguinte operação de aggregation lista todas as sessões para o usuário especificado myAppReader@test
Observação
Se estiver executando com controle de acesso e o usuário atual não for o usuário especificado, o usuário atual deverá ter privilégios com a ação listSessions no cluster.
db.aggregate( [ { $listLocalSessions: { users: [ { user: "myAppReader", db: "test" } ] } } ] ) 
Listar todas as sessões locais para o usuário atual
No cache de memória da instância mongod / mongos conectada, a seguinte operação de aggregation lista todas as sessões para o usuário atual se for executada com controle de acesso:
db.aggregate( [ { $listLocalSessions: { } } ] ) 
Se for executada sem controle de acesso, a operação listará todas as sessões locais.