$listSessions
Nesta página
Definição
$listSessions
Lista todas as sessões armazenadas na coleção
system.sessions
no 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
mongod
oumongos
, 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 doconfig
system.sessions
banco de dados do , quando, eles são visíveis para$listSessions
e 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
$listSessions
recebe 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çãolistSessions
no 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çãolistSessions
no 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.