Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$listLocalSessions (etapa de agregación)

$listLocalSessions

Enumera las sesiones almacenadas en caché en la memoria por el mongod o mongos instancia.

Importante

Cuando un usuario crea una sesión en una instancia mongod o una instancia mongos, el registro de la sesión inicialmente solo existe en la memoria de la instancia; es decir, el registro es local de la instancia. Periódicamente, la instancia sincroniza sus sesiones en caché con la colección system.sessions en la base de datos config. En ese momento, serán visibles para $listSessions y todos los miembros de la implementación. Hasta que el registro de la sesión no exista en la colección system.sessions, solo puedes listar la sesión mediante la $listLocalSessions operación.

La operación $listLocalSessions utiliza el método db.aggregate() y no el db.collection.aggregate().

Para ejecutar, debe ser la primera etapa del $listLocalSessions proceso.

La etapa tiene la siguiente sintaxis:

{ $listLocalSessions: <document> }

La etapa $listLocalSessions toma un documento con uno de los siguientes contenidos:

Campo
Descripción

{ }

Si se ejecuta con control de acceso, devuelve todas las sesiones para el usuario autenticado actual.

Si se ejecuta sin control de acceso, se devuelven todas las sesiones.

{ users: [ { user: <user>, db: <db> }, ... ] }

Devuelve todas las sesiones de los usuarios especificados. Si se ejecuta con control de acceso, el usuario autenticado debe tener privilegios con listSessions la acción en el clúster para listar las sesiones de otros usuarios.

{ allUsers: true }

Devuelve todas las sesiones de todos los usuarios. Si se ejecuta con control de acceso, el usuario autenticado debe tener privilegios con la acción listSessions en el clúster.

$listLocalSessions no se permite en las transacciones.

Desde la memoria caché de sesiones en memoria de la instancia conectada mongod / mongos, la siguiente operación de agregación enumera todas las sesiones:

Nota

Si se ejecuta con control de acceso, el usuario actual debe tener privilegios con la acción en el listSessions clúster.

db.aggregate( [ { $listLocalSessions: { allUsers: true } } ] )

Desde la caché en memoria de la instancia conectada mongod o mongos, la siguiente operación de agregación lista todas las sesiones para el usuario especificado myAppReader@test:

Nota

Si se ejecuta con control de acceso y el usuario actual no es el usuario especificado, el usuario actual debe tener privilegios con la acción en el listSessions clúster.

db.aggregate( [ { $listLocalSessions: { users: [ { user: "myAppReader", db: "test" } ] } } ] )

Desde la memoria caché en memoria de la instancia mongod / mongos conectada, la siguiente operación de agregación enumera todas las sesiones del usuario actual si se ejecuta con control de acceso:

db.aggregate( [ { $listLocalSessions: { } } ] )

Si se ejecuta sin control de acceso, la operación muestra todas las sesiones locales.

Para utilizar el controlador de MongoDB Node.js para agregar una etapa de $listLocalSessions a una canalización de agregación, utilice el Operador $listLocalSessions en un objeto de canalización.

La siguiente operación de agregación muestra todas las sesiones locales:

const pipeline = [{ $listLocalSessions: { allUsers: true } }];
const cursor = db.aggregate(pipeline);
return cursor;

Nota

Si se ejecuta con control de acceso, el usuario actual debe tener privilegios con la acción en el listSessions clúster.

La siguiente operación de agregación enumera todas las sesiones para el usuario especificado myAppReader@test:

const pipeline = [
{
$listLocalSessions: {
users: [{ user: "myAppReader", db: "test"}]
}
}
];
const cursor = db.aggregate(pipeline);
return cursor;

Nota

Si se ejecuta con control de acceso y el usuario actual no es el usuario especificado, el usuario actual debe tener privilegios con la acción en el listSessions clúster.

Si se ejecuta con control de acceso, la siguiente operación de agregación enumera todas las sesiones del usuario actual:

const pipeline = [{ $listLocalSessions: {} }];
const cursor = db.aggregate(pipeline);
return cursor;

Si se ejecuta sin control de acceso, la operación enumera todas las sesiones locales.

Volver

$listClusterCatalog

En esta página