Docs Menu
Docs Home
/ /

Cursors

커서 쿼리 결과를 가리킵니다. 커서를 사용하면 데이터베이스 결과를 한 번에 한 배치 반복할 수 있습니다.

find() aggregate() 메서드는 결과 배치 와 함께 커서 반환합니다. 커서 수동으로 반복하거나 를 toArray() 사용하여 문서에 액세스 . 자세한 내용은 에서 커서 반복하기를 mongosh 참조하세요.

고정 사이즈 컬렉션의 경우 tailable cursor 사용하여 문서가 삽입될 때 조회 . 자세한 내용은 테일 커서(tailable cursor)를 참조하세요.

MongoDB 다음과 같은 경우 클라이언트 세션 내에서 생성된 커서를 닫습니다.

  • 클라이언트 커서 소진합니다.

  • 커서 수동으로 닫습니다.

  • 세션을 수동으로 종료합니다.

  • 세션 시간이 초과되었습니다.

cursorTimeoutMillis 는 유휴 커서의 시간10 초과를 설정합니다(기본값: 분). 이 시간이 지나면 MongoDB 세션 외부의 유휴 커서를 닫습니다. 배치 반환하면 제한 시간이 연장됩니다. 를 사용하여 커서를 수동으로 killCursors 닫습니다.

localLogicalSessionTimeoutMinutes 는 세션 시간 제한을 설정합니다(기본값: 30 분).refreshSessions 세션을 연장하려면 를 killSessions 사용하고 세션을 종료하려면 를 사용합니다.

드라이버 및 mongosh 는 명시적 세션 외부에서 열린 커서에 대해 암시적 세션을 생성합니다.

커서 문서를 반환할 때 읽기 고려 (read concern) 수준에 따라 다른 작업이 배경 에서 실행 결과에 영향을 미칠 수 있습니다. 자세한 내용은 격리, 일관성 및 최신성 읽기를 참조하세요.

MongoDB 7.2부터 mongos 배포에서 존재하지 않는 데이터베이스를 사용하려고 하는 집계 파이프라인 쿼리는 유효성 검사 오류를 반환합니다.

이전 버전에서는 이러한 애그리게이션 쿼리가 빈 커서를 반환했습니다.

find 및 작업은 배치 aggregate 채울 때까지 실행됩니다. 그런 다음 쿼리 일시 중지됩니다. 일시 중지된 이 쿼리 는 커서 ID 로 식별되는 커서 입니다.

데이터베이스 는 배치 및 커서 ID 반환합니다. 드라이버 및 는 mongosh 이를 클라이언트 사이드 커서 에 저장 . 문서가 더 많은 경우 커서 를 통해 다음 배치 검색합니다. 나머지 배치 getMore 결과를 확인하려면 를 사용하고 더 cursor.objsLeftInBatch() cursor.hasNext() 많은 결과를 확인하려면 를 사용합니다.

커서는 16 MiB 최대 BSON 문서 크기로 cursor.batchSize() 제한되는 배치로 결과를 반환합니다. 를 사용하여 문서find() aggregate() 제한을 101 설정하다 . 및 의 기본값 getMore 배치 크기는 입니다. 후속 작업에는 기본값 제한이 없으며 16 MiB 메시지 크기만 있습니다.

인덱스 없이 정렬 작업을 수행하는 쿼리는 결과를 반환하기 전에 모든 문서를 메모리에 로드해야 합니다.

는 필드 에db.serverStatus() 커서 지표 반환합니다. 를 metrics.cursor metrics.cursor 참조하세요.

돌아가기

쿼리 형태

이 페이지의 내용