Definição
$listLocalSessionsLista as sessões armazenadas em cache na memória pela instância
mongodoumongos.Importante
Quando um usuário cria uma sessão em uma instância do
mongodoumongos, 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 dosystem.sessionsbanco de dados doconfig, quando, eles são visíveis para$listSessionse todos os membros da implantação. Até que o registro da sessão exista na coleçãosystem.sessions, você só pode listar a sessão por meio da operação$listLocalSessions.A operação
$listLocalSessionsutiliza o métododb.aggregate()e não odb.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 cache de memória da instância mongod ou mongos conectada, a seguinte operação de agregação lista todas as sessões do 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.
Para usar o driver Node.js do MongoDB para adicionar um estágio $listLocalSessions a um pipeline de agregação , use o operador $listLocalSessions em um objeto de pipeline.
Listar todas as sessões locais
A seguinte operação de agregação lista todas as sessões locais:
const pipeline = [{ $listLocalSessions: { allUsers: true } }]; const cursor = db.aggregate(pipeline); return cursor;
Observação
Se estiver executando com controle de acesso, o usuário atual deve ter privilégios com a ação listSessions no cluster.
Listar todas as sessões locais para os usuários especificados
A seguinte operação de agregação lista todas as sessões para o usuário especificado myAppReader@test:
const pipeline = [ { $listLocalSessions: { users: [{ user: "myAppReader", db: "test"}] } } ]; const cursor = db.aggregate(pipeline); return cursor;
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.
Listar todas as sessões locais para o usuário atual
Se for executada com controle de acesso, a seguinte operação de agregação listará todas as sessões do usuário atual:
const pipeline = [{ $listLocalSessions: {} }]; const cursor = db.aggregate(pipeline); return cursor;
Se executar sem o controle de acesso, a operação listará todas as sessões locais.