문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

db.currentOp()

이 페이지의 내용

  • 정의
  • 행동
  • 액세스 제어
  • 예제
  • 출력 예시
  • 특정 출력 예제
  • 출력 필드
db.currentOp()

데이터베이스 인스턴스의 진행 중인 작업에 대한 정보가 포함된 문서 를 반환합니다. db.currentOp() 메서드는 데이터베이스 명령 currentOp 를 래핑합니다.

명령과 mongosh 해당 헬퍼 $currentOp currentOp db.currentOp() 메서드 대신애그리게이션 단계를 사용합니다.

참고

MongoDB 5 부터 시작.0, $currentOp 애그리게이션 단계는mongosh와 함께 헬퍼 메서드 db.currentOp() 를 실행할 때 사용됩니다

이를 감안할 때 5.0 버전의 셸 및 mongosh의 경우 db.currentOp() 결과 세트에는 이전 레거시 mongo 버전의 문서에 대한 16MB BSON 문서 반환 크기 문서 반환 크기 제한이 적용되지 않습니다.

db.currentOp() 의 형식은 다음과 같습니다.

db.currentOp(<operations>)

db.currentOp() 는 다음과 같은 선택적 인수를 사용할 수 있습니다.

매개변수
유형
설명
연산
부울 또는 문서

선택 사항. 보고할 작업을 지정합니다. 불(boolean) 또는 문서를 전달할 수 있습니다:

  • 유휴 연결 및 시스템 작업에 대한 작업을 포함하려면 true를 지정합니다.

  • 조건과 일치하는 작업에 대해서만 보고하려면 쿼리 조건이 있는 문서를 지정합니다. 자세한 내용은 동작 을 참조하세요.

db.currentOp() 는 필터 문서 또는 부울 매개변수를 받을 수 있습니다.

필터 문서를 db.currentOp() 에 전달하면 출력은 필터와 일치하는 현재 작업에 대한 정보만 반환합니다. 필터 문서에는 다음이 포함될 수 있습니다.

필드
설명
"$ownOps"

부울. true로 설정하면 현재 사용자의 연산에 대한 정보만 반환합니다.

사용자는 언제든지 mongod 인스턴스에서 db.currentOp( { "$ownOps": true } )를 실행하여 작업을 확인할 수 있습니다.

"$all"

부울. true로 설정하면 유휴 연결에 대한 연산 및 시스템 연산을 포함한 모든 연산에 대한 정보를 반환합니다.

문서에 출력 필드 조건과 함께 "$all": true 가 포함되어 있는 경우 "$all":true 만 적용됩니다.

<필터>

출력 필드 에 필터 조건을 지정합니다. 예제를 참조하세요.

문서에 출력 필드 조건과 함께 "$all": true 가 포함되어 있는 경우 "$all": true 만 적용됩니다.

true 을(를) db.currentOp() (으)로 전달하는 것은 { "$all": true } 문서를 전달하는 것과 같습니다. 다음 작업은 이에 해당합니다.

db.currentOp(true)
db.currentOp( { "$all": true } )

db.currentOp()데이터베이스 프로파일러 는 다음을 포함한 모든 CRUD 작업에 대해 동일한 기본 진단 정보를 보고합니다.

이러한 작업은 느린 쿼리 로깅에도 포함됩니다(느린 쿼리 로깅에 대한 자세한 내용은 slowOpThresholdMs 참조).

authorization로 실행되는 시스템에서는 사용자에게 inprog 권한 작업이 포함된 액세스 권한이 있어야 합니다.

사용자는 inprog 권한 작업 없이도 mongod 인스턴스에서 db.currentOp( { "$ownOps": true } )를 실행하여 자신의 작업을 볼 수 있습니다.

다음도 참조하세요.

다음 예제에서는 다양한 쿼리 문서와 함께 db.currentOp() 메서드를 사용하여 출력을 필터링합니다.

다음 예에서는 잠금을 기다리는 모든 쓰기 작업에 대한 정보를 반환합니다.

db.currentOp(
{
"waitingForLock" : true,
$or: [
{ "op" : { "$in" : [ "insert", "update", "remove" ] } },
{ "command.findandmodify": { $exists: true } }
]
}
)

다음 예시에서는 결코 양보되지 않은 모든 활성 실행 작업에 대한 정보를 반환합니다.

db.currentOp(
{
"active" : true,
"numYields" : 0,
"waitingForLock" : false
}
)

다음 예시에서는 3초 이상 실행된 데이터베이스 db1의 모든 활성 작업에 대한 정보를 반환합니다.

db.currentOp(
{
"active" : true,
"secs_running" : { "$gt" : 3 },
"ns" : /^db1\./
}
)

다음 예제에서는 인덱스 생성 작업에 대한 정보를 반환합니다.

db.adminCommand(
{
currentOp: true,
$or: [
{ op: "command", "command.createIndexes": { $exists: true } },
{ op: "none", "msg" : /^Index Build/ }
]
}
)

다음은 db.currentOp() 출력의 프로토타입입니다.

이러한 출력 샘플은 특정 연산에 대한 currentOp 출력을 보여 줍니다. 실제 출력을 구성하는 필드는 서버의 역할에 따라 달라집니다.

{
type: "op",
desc: "Resharding{Donor, Recipient, Coordinator}Service <reshardingUUID>",
op: "command",
ns: "<database>.<collection>",
originatingCommand: {
reshardCollection: "<database>.<collection>",
key: <shardkey>,
unique: <boolean>,
collation: {locale: "simple"},
// Other options to the reshardCollection command are omitted
// to decrease the likelihood the output is truncated.
},
{donor, coordinator, recipient}State : "<service state>",
approxDocumentsToCopy: NumberLong(<count>),
approxBytesToCopy: NumberLong(<count>),
bytesCopied: NumberLong(<count>),
countWritesToStashCollections: NumberLong(<count>),
countWritesDuringCriticalSection : NumberLong(<count>),
countReadsDuringCriticalSection: NumberLong(<count>),
deletesApplied: NumberLong(<count>),
documentsCopied: NumberLong(<count>),
insertsApplied: NumberLong(<count>),
oplogEntriesFetched: NumberLong(<count>),
oplogEntriesApplied: NumberLong(<count>),
remainingOperationTimeEstimatedSecs: NumberLong(<count>),
allShardsLowestRemainingOperationTimeEstimatedSecs: NumberLong(<estimate>),
allShardsHighestRemainingOperationTimeEstimatedSecs: NumberLong(<estimate>),
totalApplyTimeElapsedSecs: NumberLong(<count>),
totalCopyTimeElapsedSecs: NumberLong(<count>),
totalCriticalSectionTimeElapsedSecs : NumberLong(<count>),
totalOperationTimeElapsedSecs: NumberLong(<count>),
updatesApplied: NumberLong(<count>),
}
{
type: "op",
desc: "GlobalIndex{Donor, Recipient, Coordinator}Service <globalIndexUUID}",
op: "command",
ns: "<database>.<collection>",
originatingCommand: {
createIndexes: "<database>.<collection>",
key: <indexkeypattern>,
unique: <boolean>,
<Additional createIndexes options>
},
{donor, coordinator, recipient}State : "<service state>",
approxDocumentsToScan: NumberLong(<count>),
approxBytesToScan: NumberLong(<count>),
bytesWrittenFromScan: NumberLong(<count>),
countWritesToStashCollections: NumberLong(<count>),
countWritesDuringCriticalSection : NumberLong(<count>),
countReadsDuringCriticalSection: NumberLong(<count>),
keysWrittenFromScan: NumberLong(<count>),
remainingOperationTimeEstimatedSecs: NumberLong(<count>),
allShardsLowestRemainingOperationTimeEstimatedSecs: NumberLong(<estimate>),
allShardsHighestRemainingOperationTimeEstimatedSecs: NumberLong(<estimate>),
totalCopyTimeElapsedSecs: NumberLong(<count>),
totalCriticalSectionTimeElapsedSecs : NumberLong(<count>),
totalOperationTimeElapsedSecs: NumberLong(<count>),
}

db.currentOp() 출력 필드의 전체 목록은 currentOp를 참조하세요.

← db.createView()