Menu Docs

$listSessions

$listSessions

Lista todas as sessões armazenadas na coleção system.sessions no banco de dados do config. 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 ou mongos , 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 do config 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ção system.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:

Campo
Descriçã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 listSessions 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ção listSessions no cluster.

$listSessions não é permitido em transaçõ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 } } ] )

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

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.