정의
$listSessionsconfig데이터베이스의system.sessionscollection에 저장된 모든 세션을 나열합니다. 이러한 세션은 MongoDB deployment의 모든 구성원이 볼 수 있습니다.중요
사용자가
mongod또는mongos인스턴스 에서 세션을 만들면 세션의 기록 처음에는 인스턴스 의 메모리 내에만 존재합니다. 즉, 기록 가 인스턴스 에 로컬입니다. 인스턴스 는 주기적으로 캐시된 세션을system.sessionsconfig데이터베이스 의 컬렉션 에 동기화 하며, 이 때 및$listSessions배포서버 의 모든 멤버가 해당 세션을 볼 수 있습니다. 세션 기록 컬렉션 에 존재할system.sessions때까지는 작업을 통해서만 세션을 나열할 수 있습니다.$listLocalSessions를 실행 하려면 파이프라인 의 첫 번째 단계여야
$listSessions합니다.이 단계에는 다음 구문이 있습니다.
{ $listSessions: <document> } $listSessions단계에서는 다음 내용 중 하나가 포함된 문서 사용합니다.필드설명{ }액세스 제어와 함께 실행하는 경우 현재 인증된 사용자에 대한 모든 세션을 반환합니다.
액세스 제어 없이 실행하는 경우 모든 세션을 반환합니다.
{ users: [ { user: <user>, db: <db> }, ... ] }지정된 사용자에 대한 모든 세션을 반환합니다. 액세스 제어와 함께 실행하는 경우 인증된 사용자는 cluster에서
listSessions조치가 있는 권한이 있어야 다른 사용자의 세션을 나열할 수 있습니다.{ allUsers: true }모든 사용자에 대한 모든 세션을 반환합니다. 액세스 제어와 함께 실행하는 경우 인증된 사용자는 클러스터에서
listSessions작업이 있는 권한이 있어야 합니다.
제한 사항
$listSessions 은(는) 거래에서 허용되지 않습니다.
예시
모든 세션 나열
system.sessions 컬렉션에서 다음 집계 작업은 모든 세션을 나열합니다.
참고
액세스 제어를 사용하여 실행하는 경우 현재 사용자는 cluster에 대해 listSessions 조치가 있는 권한이 있어야 합니다.
use config db.system.sessions.aggregate( [ { $listSessions: { allUsers: true } } ] )
지정된 사용자에 대한 모든 세션 나열
system.sessions 2} collection에서 다음 집계 연산은 지정된 사용자 myAppReader@test에 대한 모든 세션을 나열합니다:
참고
액세스 제어와 함께 실행 중이고 현재 사용자가 지정된 사용자가 아닌 경우 현재 사용자에게 cluster에 대한 listSessions 조치가 있는 권한이 있어야 합니다.
use config db.system.sessions.aggregate( [ { $listSessions: { users: [ {user: "myAppReader", db: "test" } ] } } ] )
현재 사용자의 모든 세션 나열
system.sessions collection에서 액세스 제어와 함께 실행하는 경우 다음 집계 연산은 현재 사용자의 모든 세션을 나열합니다.
use config db.system.sessions.aggregate( [ { $listSessions: { } } ] )
액세스 제어 없이 실행하면 연산은 모든 세션을 나열합니다.
MongoDB Node.js 운전자 사용하여 집계 파이프라인 에 $listSessions 단계를 추가하려면 파이프라인 객체 에서 $listSessions 연산자 사용합니다. system.sessions 컬렉션에서 파이프라인 실행합니다.
모든 세션 나열
다음 집계 작업은 모든 세션을 나열합니다.
const db = client.db("config"); const collection = db.collection("system.sessions"); const pipeline = [{ $listSessions: { allUsers: true } }]; const cursor = collection.aggregate(pipeline); return cursor;
참고
액세스 제어를 사용하여 실행하는 경우 현재 사용자는 cluster에 대해 listSessions 조치가 있는 권한이 있어야 합니다.
지정된 사용자에 대한 모든 세션 나열
다음 집계 작업은 지정된 사용자 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;
참고
액세스 제어와 함께 실행 중이고 현재 사용자가 지정된 사용자가 아닌 경우 현재 사용자에게 cluster에 대한 listSessions 조치가 있는 권한이 있어야 합니다.
현재 사용자의 모든 세션 나열
액세스 제어와 함께 실행 다음 집계 작업은 현재 사용자의 모든 세션을 나열합니다.
const db = client.db("config"); const collection = db.collection("system.sessions"); const pipeline = [{ $listSessions: {} }]; const cursor = collection.aggregate(pipeline); return cursor;
액세스 제어 없이 실행하면 작업은 모든 세션을 나열합니다.
출력
$listSessions 세션당 하나의 문서가 포함된 커서를 반환합니다. 각 문서에는 다음 프로토타입이 있습니다.
{ _id: { id: <UUID>, uid: <BinData> }, lastUse: <date> }
필드 | 유형 | 설명 |
|---|---|---|
| UUID | 세션의 전 세계적으로 고유한 식별자(UUID)입니다. |
| BinData | 세션과 연결된 인증된 사용자 자격 자격 증명 의 해시입니다. |
| 날짜 | 세션이 마지막으로 사용된 날짜 및 시간입니다. |