killCursors
버전 3.2에 새로 추가되었습니다.
정의
killCursors
컬렉션에 대해 지정된 커서를 종료합니다. MongoDB 드라이버는 클라이언트 사이드 커서 구현의 일부로
killCursors
명령을 사용합니다.경고
애플리케이션은 일반적으로
killCursors
명령을 직접 실행 해서는 안 됩니다. 대신 운전자 가 커서 관리 를 자동으로 처리하다 하도록 합니다.커서를 종료하려는 collection의 데이터베이스에 대해
killCursors
명령을 실행해야 합니다.killCursors를 실행 하려면
db.runCommand( { <command> } )
메서드를 사용합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.runCommand( { "killCursors": <collection>, "cursors": [ <cursor id1>, ... ], comment: <any> } )
명령 필드
이 명령은 다음 필드를 사용합니다.
필드 | 유형 | 설명 |
---|---|---|
| 문자열 | 컬렉션의 이름입니다. |
| 배열 | 종료할 커서의 ID입니다. |
| any | 선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.
댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다. |
필요한 액세스 권한
자신의 커서 종료
사용자는 권한 이 있는지 여부에 관계없이 항상 자신의 커서를 종료할 수 있습니다.killCursors
커서는 커서 생성 시 사용자와 연결됩니다.
모든 커서 종료
사용자에게 권한 이 있는 killAnyCursor
경우 모든 사용자가 만든 커서를 종료할 수 있습니다.
killCursors
및 트랜잭션
명령을 트랜잭션 의 killCursors
첫 번째 작업으로 지정할 수 없습니다.
또한 트랜잭션 내에서 killCursors
명령을 실행 하면 서버 가 지정된 커서를 즉시 중지합니다. 트랜잭션 이 커밋 될 때까지 기다리지 않습니다.
예시
test.restaurants
collection에 대한 다음 find
작업을 고려합니다.
use test db.runCommand( { find: "restaurants", filter: { stars: 5 }, projection: { name: 1, rating: 1, address: 1 }, sort: { name: 1 }, batchSize: 5 } )
그러면 다음이 반환됩니다.
{ "waitedMS" : NumberLong(0), "cursor" : { "firstBatch" : [ { "_id" : ObjectId("57506d63f578028074723dfd"), "name" : "Cakes and more" }, { "_id" : ObjectId("57506d63f578028074723e0b"), "name" : "Pies and things" }, { "_id" : ObjectId("57506d63f578028074723e1d"), "name" : "Ice Cream Parlour" }, { "_id" : ObjectId("57506d63f578028074723e65"), "name" : "Cream Puffs" }, { "_id" : ObjectId("57506d63f578028074723e66"), "name" : "Cakes and Rolls" } ], "id" : NumberLong("18314637080"), "ns" : "test.restaurants" }, "ok" : 1 }
이 커서를 종료하려면 killCursors
명령을 사용합니다.
use test db.runCommand( { killCursors: "restaurants", cursors: [ NumberLong("18314637080") ] } )
killCursors
다음 작업 세부 정보를 반환합니다.
{ "cursorsKilled" : [ NumberLong("18314637080") ], "cursorsNotFound" : [ ], "cursorsAlive" : [ ], "cursorsUnknown" : [ ], "ok" : 1 }