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
/ /

$listSessions (etapa de agregación)

$listSessions

Enumera todas las sesiones almacenadas en el system.sessions Colección en la config base de datos. Estas sesiones son visibles para todos los miembros de la implementación de MongoDB.

Importante

Cuando un usuario crea una sesión en una instancia mongod o mongos, el registro de la sesión existe inicialmente solo en memoria en la instancia; es decir, el registro es local a la instancia. Periódicamente, la instancia sincronizará sus sesiones almacenadas en caché en la system.sessions colección en la base de datos config, momento en el que serán visibles para $listSessions y todos los nodos de la implementación. Hasta que el registro de la sesión se cree en la colección system.sessions, sólo puede listar la sesión mediante la operación $listLocalSessions.

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

La etapa tiene la siguiente sintaxis:

{ $listSessions: <document> }

La etapa $listSessions 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.

$listSessions no se permite en las transacciones.

De la colección system.sessions, 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.

use config
db.system.sessions.aggregate( [ { $listSessions: { allUsers: true } } ] )

De la colección, la siguiente operación de agregación enumera todas las sesiones del system.sessions usuario myAppReader@test especificado:

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.

use config
db.system.sessions.aggregate( [ { $listSessions: { users: [ {user: "myAppReader", db: "test" } ] } } ] )

Desde la colección system.sessions, la siguiente operación de agregación enumera todas las sesiones para el usuario actual si se ejecuta con control de acceso:

use config
db.system.sessions.aggregate( [ { $listSessions: { } } ] )

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

Para utilizar el driver Node.js de MongoDB para añadir una etapa $listSessions a un pipeline de agregación, utiliza el operador $listSessions en un objeto pipeline. Ejecuta el pipeline en la colección system.sessions.

La siguiente operación de agregación enumera todas las sesiones:

const db = client.db("config");
const collection = db.collection("system.sessions");
const pipeline = [{ $listSessions: { allUsers: true } }];
const cursor = collection.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 del usuario especificado myAppReader@test:

const db = client.db("config");
const collection = db.collection("system.sessions");
const pipeline = [
{
$listSessions: {
users: [{ user: "myAppReader", db: "test"}]
}
}
];
const cursor = collection.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 db = client.db("config");
const collection = db.collection("system.sessions");
const pipeline = [{ $listSessions: {} }];
const cursor = collection.aggregate(pipeline);
return cursor;

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

Volver

$listSearchIndexes

En esta página