Definição
$listSessionsNovidade na versão 3.6.
Lista todas as sessões armazenadas na coleção
system.sessionsno banco de banco de dadosconfig. Essas sessões são visíveis para todos os membros do sistema do MongoDB .Importante
Quando um usuário cria uma sessão em uma instância
mongodoumongos, o registro da sessão existe inicialmente apenas na memória da 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 doconfigsystem.sessionsbanco de dados do , quando, eles são visíveis para$listSessionse todos os membros da implantação. Até que o registro de sessão exista na coleçãosystem.sessions, você só pode listar a sessão por meio da operação$listLocalSessions.Para executar
$listSessions, ele deve ser o primeiro estágio no pipeline.O estágio tem a seguinte sintaxe:
{ $listSessions: <document> } O estágio
$listSessionsrecebe 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
$listSessions não é permitido em transações.
Exemplos
Listar todas as sessões
Na coleção system.sessions, 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.
use config db.system.sessions.aggregate( [ { $listSessions: { allUsers: true } } ] )
Listar todas as sessões para os usuários especificados
Na coleção system.sessions, 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.
use config db.system.sessions.aggregate( [ { $listSessions: { users: [ {user: "myAppReader", db: "test" } ] } } ] )
Listar todas as sessões para o usuário atual
Na coleção system.sessions, a seguinte operação de aggregation lista todas as sessões para o usuário atual se executar com controle de acesso:
use config db.system.sessions.aggregate( [ { $listSessions: { } } ] )
Se executar sem o controle de acesso, a operação listará todas as sessões.