AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

db.currentOp() (mongosh 메서드)

db.currentOp()

중요

currentOp 명령(버전 6.2에서 더 이상 사용되지 않음) 및db.currentOp() 메서드 대신 $currentOp 집계 단계를 사용하는 것이 좋습니다.

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

참고

MongoDB 5.0부터,mongosh와 함께 헬퍼 메서드 db.currentOp()를 실행 때 $currentOp 집계 단계가 사용됩니다.

Given this, in the 5.0 version of the shell and with mongosh, db.currentOp() result sets are not subject to the 16MB BSON document return size document return size limit for documents of the previous legacy mongo versions.

이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: cloud 에서의 MongoDB 배포를 위한 완전 managed 서비스

중요

이 명령은 M0 및 Flex 클러스터에서 지원되지 않습니다.자세한 내용은 지원되지 않는 명령을 참조하세요.

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

db.currentOp(<operations>)

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

Parameter
유형
설명

부울 또는 문서

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

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

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

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

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

필드
설명

"$ownOps"

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

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

"$all"

불리언. true로 설정하면 유휴 연결에 대한 작업 및 시스템 작업을 포함한 모든 작업에 대한 정보를 반환합니다. 자세한 내용은 $currentOp(집계 단계)를 참조하세요.

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

<filter>

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

문서 출력 필드 조건과 함께 "$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.getSiblingDB("admin").aggregate( [
{ $currentOp : { idleConnections: true } },
{ $match: {
$or: [
{ "op": "command", "command.createIndexes": { $exists: true } },
{ "op": "none", "msg": /^Index Build/ }
]
}
}
] )

참고

활성 인덱싱 작업은 롤링 인덱스 생성에 적용되지 않습니다.

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

다음은 독립형에서 실행될 때의 currentOp 출력의 프로토타입입니다.

{
"inprog": [
{
"type" : <string>,
"host" : <string>,
"desc" : <string>,
"connectionId" : <number>,
"client" : <string>,
"appName" : <string>,
"clientMetadata" : <document>,
"active" : <boolean>,
"currentOpTime" : <string>,
"effectiveUsers" : [
{
"user" : <string>,
"db" : <string>
}
],
"opid" : <number>,
"lsid" : {
"id" : <UUID>,
"uid" : <BinData>
},
"secs_running" : <Long()>,
"microsecs_running" : <number>,
"op" : <string>,
"ns" : <string>,
"command" : <document>,
"queryFramework" : <string>,
"planSummary": <string>,
"inUseTrackedMemBytes": <Long()>, // Starting in 8.3
"peakTrackedMemBytes": <Long()>, // Starting in 8.3
"cursor" : { // only for getMore operations
"cursorId" : <Long()>,
"createdDate" : <ISODate()>,
"lastAccessDate" : <ISODate()>,
"nDocsReturned" : <Long()>,
"nBatchesReturned" : <Long()>,
"noCursorTimeout" : <boolean>,
"tailable" : <boolean>,
"awaitData" : <boolean>,
"originatingCommand" : <document>,
"planSummary" : <string>,
"operationUsingCursorId" : <Long()>
},
"msg": <string>,
"progress" : {
"done" : <number>,
"total" : <number>
},
"killPending" : <boolean>,
"numYields" : <number>,
"dataThroughputLastSecond" : <number>,
"dataThroughputAverage" : <number>,
"locks" : {
"ParallelBatchWriterMode" : <string>,
"ReplicationStateTransition" : <string>,
"Global" : <string>,
"Database" : <string>,
"Collection" : <string>,
"Metadata" : <string>,
"oplog" : <string>
},
"waitingForLock" : <boolean>,
"lockStats" : {
"ParallelBatchWriterMode" : {
"acquireCount": {
"r": <NumberLong>,
"w": <NumberLong>,
"R": <NumberLong>,
"W": <NumberLong>
},
"acquireWaitCount": {
"r": <NumberLong>,
"w": <NumberLong>,
"R": <NumberLong>,
"W": <NumberLong>
},
"timeAcquiringMicros" : {
"r" : Long(0),
"w" : Long(0),
"R" : Long(0),
"W" : Long(0)
},
"deadlockCount" : {
"r" : Long(0),
"w" : Long(0),
"R" : Long(0),
"W" : Long(0)
}
},
"ReplicationStateTransition" : {
...
},
"Global": {
...
},
"Database" : {
...
},
...
}
},
...
],
"fsyncLock": <boolean>,
"info": <string>,
"ok": <num>
}

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

{
shard: '<string>',
totalCopyTimeElapsedSecs: Long('<count>'),
totalApplyTimeElapsedSecs: Long('<count>'),
totalCriticalSectionTimeElapsedSecs: Long('<count>'),
totalIndexBuildTimeElapsedSecs: Long('<count>'),
indexesToBuild: Long('<count>'),
indexesBuilt: Long('<count>'),
oplogEntriesFetched: Long('<count>'),
oplogEntriesApplied: Long('<count>'),
insertsApplied: Long('<count>'),
updatesApplied: Long('<count>'),
deletesApplied: Long('<count>'),
type: 'op',
desc: 'ReshardingMetrics{Donor|Recipient|Coordinator}Service <reshardingUUID>',
op: 'command',
ns: '<database>.<collection>',
originatingCommand: {
reshardCollection: '<database>.<collection>',
key: '<shardkey>',
unique:'<boolean>',
collation: { locale: 'simple' }
},
totalOperationTimeElapsedSecs: Long('<count>'),
recipientState: '<service state>',
remainingOperationTimeEstimatedSecs: Long('<count>'),
approxDocumentsToCopy: Long('<count>'),
approxBytesToCopy: Long('<count>'),
bytesCopied: Long('<count>'),
countWritesToStashCollections: Long('<count>'),
documentsCopied: Long('<count>'),
provenance: 'reshardCollection'
}

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