정의
$listLocalSessions
mongod
또는mongos
인스턴스 에 의해 메모리에 캐시된 세션을 나열합니다.중요
사용자가
mongod
또는mongos
인스턴스에서 세션을 만들면 세션의 기록은 처음에는 인스턴스의 인메모리에만 존재합니다. 즉, 레코드가 인스턴스에 대해 로컬입니다. 인스턴스는 주기적으로 캐시된 세션을config
데이터베이스의system.sessions
컬렉션에 동기화하며, 이 때$listSessions
및 배포의 모든 멤버가 해당 세션을 볼 수 있습니다. 세션 레코드가system.sessions
컬렉션에 존재할 때까지는$listLocalSessions
작업을 통해서만 세션을 나열할 수 있습니다.$listLocalSessions
작업은db.collection.aggregate()
가 아닌db.aggregate()
메서드를 사용합니다.$listLocalSessions
를 실행하려면 파이프라인의 첫 번째 단계여야 합니다.이 단계에는 다음 구문이 있습니다.
{ $listLocalSessions: <document> } $listLocalSessions
단계는 다음 내용 중 하나가 포함된 문서를 사용합니다.필드설명{ }
액세스 제어와 함께 실행하는 경우 현재 인증된 사용자에 대한 모든 세션을 반환합니다.
액세스 제어 없이 실행하는 경우 모든 세션을 반환합니다.
{ users: [ { user: <user>, db: <db> }, ... ] }
지정된 사용자에 대한 모든 세션을 반환합니다. 액세스 제어와 함께 실행하는 경우 인증된 사용자는 cluster에서
listSessions
조치가 있는 권한이 있어야 다른 사용자의 세션을 나열할 수 있습니다.{ allUsers: true }
모든 사용자에 대한 모든 세션을 반환합니다. 액세스 제어와 함께 실행하는 경우 인증된 사용자는 클러스터에서
listSessions
작업이 있는 권한이 있어야 합니다.
제한 사항
$listLocalSessions
은(는) 거래에서 허용되지 않습니다.
예시
모든 로컬 세션 나열
연결된 mongod
/ mongos
인스턴스의 세션 내 메모리 내 캐시에서 다음 애그리게이션 작업은 모든 세션을 나열합니다.
참고
액세스 제어를 사용하여 실행하는 경우 현재 사용자는 cluster에 대해 listSessions
조치가 있는 권한이 있어야 합니다.
db.aggregate( [ { $listLocalSessions: { allUsers: true } } ] )
지정된 사용자에 대한 모든 로컬 세션 나열
연결된 mongod
또는 mongos
인스턴스의 인메모리 캐시 에서 다음 집계 작업은 지정된 사용자 myAppReader@test
에 대한 모든 세션을 나열합니다.
참고
액세스 제어와 함께 실행 중이고 현재 사용자가 지정된 사용자가 아닌 경우 현재 사용자에게 cluster에 대한 listSessions
조치가 있는 권한이 있어야 합니다.
db.aggregate( [ { $listLocalSessions: { users: [ { user: "myAppReader", db: "test" } ] } } ] )
현재 사용자에 대한 모든 로컬 세션 나열
다음 애그리게이션 작업을 액세스 제어와 함께 실행 mongod
하면 연결된 / 인스턴스의 인메모리 캐시에서 현재 사용자에 대한 모든 세션이 나열됩니다. mongos
db.aggregate( [ { $listLocalSessions: { } } ] )
액세스 제어 없이 실행하면 작업이 모든 로컬 세션을 나열합니다.
MongoDB Node.js 운전자 사용하여 집계 파이프라인 에 $listLocalSessions
단계를 추가하려면 파이프라인 객체 에서 $listLocalSessions
연산자 사용합니다.
모든 로컬 세션 나열
다음 집계 작업은 모든 로컬 세션을 나열합니다.
const pipeline = [{ $listLocalSessions: { allUsers: true } }]; const cursor = db.aggregate(pipeline); return cursor;
참고
액세스 제어를 사용하여 실행하는 경우 현재 사용자는 cluster에 대해 listSessions
조치가 있는 권한이 있어야 합니다.
지정된 사용자에 대한 모든 로컬 세션 나열
다음 집계 작업은 지정된 사용자 myAppReader@test
에 대한 모든 세션을 나열합니다.
const pipeline = [ { $listLocalSessions: { users: [{ user: "myAppReader", db: "test"}] } } ]; const cursor = db.aggregate(pipeline); return cursor;
참고
액세스 제어와 함께 실행 중이고 현재 사용자가 지정된 사용자가 아닌 경우 현재 사용자에게 cluster에 대한 listSessions
조치가 있는 권한이 있어야 합니다.
현재 사용자에 대한 모든 로컬 세션 나열
액세스 제어와 함께 실행 다음 집계 작업은 현재 사용자의 모든 세션을 나열합니다.
const pipeline = [{ $listLocalSessions: {} }]; const cursor = db.aggregate(pipeline); return cursor;
액세스 제어 없이 실행 작업이 모든 로컬 세션을 나열합니다.