문서 홈 → 애플리케이션 개발 → MongoDB 매뉴얼
killCursors
이 페이지의 내용
버전 3.2에 새로 추가되었습니다.
정의
killCursors
컬렉션에 대해 지정된 커서를 종료합니다. MongoDB 드라이버는 클라이언트 사이드 커서 구현의 일부로
killCursors
명령을 사용합니다.참고
일반적으로 애플리케이션은
killCursors
명령을 직접 사용해서는 안 됩니다.커서를 종료하려는 collection의 데이터베이스에 대해
killCursors
명령을 실행해야 합니다.killCursors를 실행하려면
db.runCommand( { <command> } )
메서드를 사용합니다.명령의 형식은 다음과 같습니다.
db.runCommand( { "killCursors": <collection>, "cursors": [ <cursor id1>, ... ], comment: <any> } ) 필드유형설명killCursors
문자열컬렉션의 이름입니다.cursors
배열종료할 커서의 ID입니다.comment
어떤선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.
mongod 로그 메시지(
attr.command.cursor.comment
필드).데이터베이스 프로파일러 출력의
command.comment
필드에 있습니다.currentOp
{command.comment
5} 필드에 출력을 입력합니다.
댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다.
필요한 액세스 권한
자신의 커서 종료
MongoDB 4.2 이상에서는
killCursors
에 대한 권한이 있는지 여부에 관계없이 사용자가 항상 자신의 커서를 종료할 수 있습니다. 커서는 커서 생성 시 사용자와 연관됩니다.MongoDB 3.6.3부터 MongoDB 4.0.x 까지, 사용자가 자신의 커서를 종료하려면
killCursors
권한이 필요합니다. 커서는 커서 생성 시 사용자와 연관됩니다.
모든 커서 종료
사용자가 killAnyCursor
권한을 가진 경우, 해당 사용자는 다른 사용자가 만든 커서를 포함하여 모든 커서를 죽일 수 있습니다.
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 }