$currentOp (aggregation)
On this page本页内容
Definition定义
$currentOp
-
Returns a stream of documents containing information on active and/or dormant operations as well as inactive sessions that are holding locks as part of a transaction.返回一个文档流,其中包含有关活动和/或休眠操作以及作为事务一部分持有锁的非活动会话的信息。The stage returns a document for each operation or session.该阶段为每个操作或会话返回一个文档。To run要运行$currentOp
, use thedb.aggregate()
helper on theadmin
database.$currentOp
,请在admin
数据库上使用db.aggregate()
助手。The$currentOp
aggregation stage is preferred over thecurrentOp
command and itsmongosh
helper methoddb.currentOp()
.currentOp
聚合阶段比currentOp
命令及其mongosh
辅助方法db.currentOp()
更可取。Because the由于currentOp
command anddb.currentOp()
helper method return the results in a single document, the total size of thecurrentOp
result set is subject to the maximum 16MB BSON size limit for documents.currentOp
命令和db.currentOp()
辅助方法在单个文档中返回结果,因此currentOp
结果集的总大小受文档的最大16MB BSON大小限制。The$currentOp
stage returns a cursor over a stream of documents, each of which reports a single operation.$currentOp
阶段在文档流上返回一个游标,每个文档流报告一个操作。Each operation document is subject to the 16MB BSON limit, but unlike the每个操作文档都受16MB BSON限制,但与currentOp
command, there is no limit on the overall size of the result set.currentOp
命令不同,结果集的总体大小没有限制。$currentOp
also enables you to perform arbitrary transformations of the results as the documents pass through the pipeline.还使您能够在文档通过管道时对结果执行任意转换。
Syntax语法
{ $currentOp: { allUsers: <boolean>, idleConnections: <boolean>, idleCursors: <boolean>, idleSessions: <boolean>, localOps: <boolean> } }
$currentOp
takes an options document as its operand:将选项文档作为其操作数:
allUsers |
Note inprog privilege is required if allUsers: true .allUsers:true ,则需要inprog 权限。inprog privilege is required to run $currentOp . $currentOp 需要inprog 权限。false . false 。 |
idleConnections | false , $currentOp only reports active operations. false ,则$currentOp 仅报告活动操作。true , $currentOp returns all operations, including idle connections.true ,$currentOp 将返回所有操作,包括空闲连接。false . false 。 |
idleCursors | true , $currentOp reports on cursors that are "idle"; i.e. open but not currently active in a getMore operation.true ,$currentOp 将报告“空闲”的游标;即在getMore 操作中打开但当前未处于活动状态。type set to "idleCursor" .type 设置为"idleCursor" 。getMore operation information have the type set to "op" and op set to getmore .getMore 操作信息中当前活动的游标信息的type 设置为"op" ,op 设置为getMore 。false . false 。 |
idleSessions |
true . true 。 |
localOps | true for an aggregation running on mongos , $currentOp reports only operations running locally on that mongos . mongos 上运行的聚合设置为true ,则$currentOp 仅报告在该mongos 本地运行的操作。false , then $currentOp instead reports operations running on the shards.false ,那么$currentOp 将报告在分片上运行的操作。localOps parameter has no effect for $currentOp aggregations running on mongod .localOps 参数对mongod 上运行的$currentOp 聚合没有影响。false . false 。 |
backtrace | waitingForLatch output field. waitingForLatch 输出字段的一部分返回。
false . false 。 |
Omitting any of the above parameters causes $currentOp to use that parameter's default value. Specify an empty document, as shown below, to use the default values of all parameters.省略上述任何参数都会导致$currentOp
使用该参数的默认值。指定一个空文档,如下所示,以使用所有参数的默认值。
{ $currentOp: { } }
Constraints限制
Pipeline管道
$currentOp
must be the first stage in the pipeline.必须是管道中的第一阶段。Pipelines that start with以$currentOp
can only be run on theadmin
database.$currentOp
开头的管道只能在admin
数据库上运行。
Access Control访问控制
For standalone and replica sets that enforce access control,对于强制访问控制的独立集和副本集,如果inprog
privilege is required to run$currentOp
if allUsers: true.allUsers:true
,则需要inprog
权限才能运行$currentOp
。For sharded clusters that enforce access control, the对于强制访问控制的分片集群,运行inprog
privilege is required to run$currentOp
.$currentOp
需要inprog
权限。
Transactions事务
在事务中不允许$currentOp
is not allowed in transactions.$currentOp
。
Redaction编辑
When using Queryable Encryption, 使用可查询加密时,$currentOp
output redacts certain information:$currentOp
输出会编辑某些信息:
The output omits all fields after输出省略了"command"
."command"
之后的所有字段。The output redacts输出对“命令”进行编辑,使其仅包括第一个元素"command"
to include only the first element,$comment
, and$db
.$comment
和$db
。
Examples实例
The following examples show how to use the 以下示例显示了如何使用$currentOp
aggregation stage.$currentOp
聚合阶段。
Inactive Sessions非活动会话
This example returns information on inactive sessions that are holding locks as part of a transaction. Specifically:此示例返回作为事务一部分持有锁的非活动会话的信息。具体而言:
The first stage returns documents for all active operations as well as inactive sessions that are holding locks as part of a transaction.第一阶段返回所有活动操作以及作为事务一部分持有锁的非活动会话的文档。The second stage filters for documents related to inactive sessions that are holding locks as part of a transaction.第二阶段筛选与作为事务一部分持有锁的非活动会话相关的文档。
db.getSiblingDB("admin").aggregate( [
{ $currentOp : { allUsers: true, idleSessions: true } },
{ $match : { active: false, transaction : { $exists: true } } }
] )
You can use 您可以使用$currentOp.type
to specify an equivalent filter:$currentOp.type
指定等效的筛选器:
db.getSiblingDB("admin").aggregate( [
{ $currentOp : { allUsers: true, idleSessions: true } },
{ $match : { type: "idleSession" } }
] )
For transactions on a sharded cluster, starting in version 4.2.1, include localOps:true in the aforementioned examples for a composite view of the transactions.对于分片集群上的事务,从4.2.1版本开始,在前面提到的事务复合视图示例中包括localOps:true
。
Both operations return documents of the form:两个操作都返回表单的文档:
When run on a 当在作为复制集一部分的mongod
that is part of a replica set:mongod
上运行时:
{
"type" : "idleSession",
"host" : "example.mongodb.com:27017",
"desc" : "inactive transaction",
"client" : "198.51.100.1:50428",
"connectionId" : NumberLong(32),
"appName" : "",
"clientMetadata" : {
"driver" : {
"name" : "PyMongo",
"version" : "3.9.0"
},
"os" : {
"type" : "Darwin",
"name" : "Darwin",
"architecture" : "x86_64",
"version" : "10.14.5"
},
"platform" : "CPython 3.7.1.final.0"
},
"lsid" : {
"id" : UUID("ff21e1a9-a130-4fe0-942f-9e6b6c67ea3c"),
"uid" : BinData(0,"3pxqkATNUYKV/soT7qqKE0zC0BFb0pBz1pk4xXcSHsI=")
},
"transaction" : {
"parameters" : {
"txnNumber" : NumberLong(4),
"autocommit" : false,
"readConcern" : {
"level" : "snapshot",
"afterClusterTime" : Timestamp(1563892246, 1)
}
},
"readTimestamp" : Timestamp(0, 0),
"startWallClockTime" : "2019-07-23T10:30:49.461-04:00",
"timeOpenMicros" : NumberLong(1913590),
"timeActiveMicros" : NumberLong(55),
"timeInactiveMicros" : NumberLong(1913535),
"expiryTime" : "2019-07-23T10:31:49.461-04:00"
},
"waitingForLock" : false,
"active" : false,
"locks" : {
"ReplicationStateTransition" : "w",
"Global" : "w",
"Database" : "w",
"Collection" : "w"
},
"lockStats" : {
"ReplicationStateTransition" : {
"acquireCount" : {
"w" : NumberLong(5)
}
},
"Global" : {
"acquireCount" : {
"r" : NumberLong(3),
"w" : NumberLong(1)
}
},
"Database" : {
"acquireCount" : {
"r" : NumberLong(2),
"w" : NumberLong(1)
}
},
"Collection" : {
"acquireCount" : {
"w" : NumberLong(1)
}
},
"Mutex" : {
"acquireCount" : {
"r" : NumberLong(3)
}
},
"oplog" : {
"acquireCount" : {
"r" : NumberLong(2)
}
}
},
"waitingForFlowControl" : false,
"flowControlStats" : {},
}
Starting in version 4.2.1, 从4.2.1版本开始,使用$currentOp
run with localOps:true provides a composite view (rather than per shard information) of the in-progress transactions run on that mongos
.localOps:true
运行的$currentOp
提供了在mongos
上运行的正在进行的事务的合成视图(而不是每个分片的信息)。
db.getSiblingDB("admin").aggregate( [
{ $currentOp : { allUsers: true, idleSessions: true, localOps: true } },
{ $match : { type: "idleSession" } }
] );
// or
db.getSiblingDB("admin").aggregate( [
{ $currentOp : { allUsers: true, idleSessions: true, localOps: true } },
{ $match : { active: false, transaction : { $exists: true } } }
] )
{
"type" : "idleSession",
"host" : "example.mongodb.com:27017",
"desc" : "inactive transaction",
"client" : "198.51.100.1:49618",
"connectionId" : NumberLong(48),
"appName" : "",
"clientMetadata" : {
"driver" : {
"name" : "PyMongo",
"version" : "3.9.0"
},
"os" : {
"type" : "Darwin",
"name" : "Darwin",
"architecture" : "x86_64",
"version" : "10.14.6"
},
"platform" : "CPython 3.7.1.final.0",
"mongos" : {
"host" : "example.mongodb.com:27017",
"client" : "198.51.100.1:53268",
"version" : "4.2.1"
}
},
"lsid" : {
"id" : UUID("2c9ce111-133e-45b7-a00f-a7871005cae1"),
"uid" : BinData(0,"3pxqkATNUYKV/soT7qqKE0zC0BFb0pBz1pk4xXcSHsI=")
},
"active" : false,
"transaction" : {
"parameters" : {
"txnNumber" : NumberLong(2),
"autocommit" : false,
"readConcern" : {
"level" : "snapshot",
"afterClusterTime" : Timestamp(1571869019, 2)
}
},
"globalReadTimestamp" : Timestamp(1571869019, 2),
"startWallClockTime" : "2019-10-23T18:16:59.341-04:00",
"timeOpenMicros" : NumberLong(169244639),
"timeActiveMicros" : NumberLong(535),
"timeInactiveMicros" : NumberLong(169244104),
"numParticipants" : 2,
"participants" : [
{
"name" : "shardB",
"coordinator" : true,
"readOnly" : false
},
{
"name" : "shardA",
"coordinator" : false,
"readOnly" : false
}
],
"numReadOnlyParticipants" : 0,
"numNonReadOnlyParticipants" : 2
}
}
In 4.2.0, you can only return in-progress transactions information when run without localOps:true on the 在4.2.0中,只有在mongos
. mongos
上没有localOps:true
的情况下运行时,才能返回正在进行的事务信息。When run without localOps:true on the 当在mongos
, the transaction information is per shard.mongos
上不使用localOps:true
运行时,事务信息是按分片的。
When run on a 当在没有mongos
without localOps:true, the transaction information is per shard.localOps:true
的mongos
上运行时,事务信息是按分片的。
{
"shard" : "shardB",
"type" : "idleSession",
"host" : "shardB.mongodb.com:27018",
"desc" : "inactive transaction",
"client_s" : "198.51.100.1:53961",
"connectionId" : NumberLong(63),
"appName" : "",
"clientMetadata" : {
"driver" : {
"name" : "PyMongo",
"version" : "3.9.0"
},
"os" : {
"type" : "Darwin",
"name" : "Darwin",
"architecture" : "x86_64",
"version" : "10.14.6"
},
"platform" : "CPython 3.7.1.final.0",
"mongos" : {
"host" : "example.mongodb.com:27017",
"client" : "198.51.100.1:53976",
"version" : "4.2.0"
}
},
"lsid" : {
"id" : UUID("720d403c-8daf-40bb-b61e-329e20b0493b"),
"uid" : BinData(0,"3pxqkATNUYKV/soT7qqKE0zC0BFb0pBz1pk4xXcSHsI=")
},
"transaction" : {
"parameters" : {
"txnNumber" : NumberLong(1),
"autocommit" : false,
"readConcern" : {
"level" : "snapshot"
}
},
"readTimestamp" : Timestamp(0, 0),
"startWallClockTime" : "2019-10-21T18:31:12.192-04:00",
"timeOpenMicros" : NumberLong(24137008),
"timeActiveMicros" : NumberLong(52),
"timeInactiveMicros" : NumberLong(24136956),
"expiryTime" : "2019-10-21T18:32:12.192-04:00"
},
"waitingForLock" : false,
"active" : false,
"locks" : {
"ReplicationStateTransition" : "w",
"Global" : "w",
"Database" : "w",
"Collection" : "w"
},
"lockStats" : {
"ReplicationStateTransition" : {
"acquireCount" : {
"w" : NumberLong(3)
}
},
"Global" : {
"acquireCount" : {
"r" : NumberLong(1),
"w" : NumberLong(1)
}
},
"Database" : {
"acquireCount" : {
"r" : NumberLong(1),
"w" : NumberLong(1)
}
},
"Collection" : {
"acquireCount" : {
"r" : NumberLong(1),
"w" : NumberLong(1)
}
},
"Mutex" : {
"acquireCount" : {
"r" : NumberLong(6)
}
}
}
}
{
"shard" : "shardA",
"type" : "idleSession",
...
}
Sampled Queries采样查询
This example returns information on query sampling progess.此示例返回有关查询采样进程的信息。
The first stage returns documents for all active operations.第一阶段返回所有活动操作的文档。The second stage filters for documents related to the query analyzer.第二阶段筛选与查询分析器相关的文档。
db.getSiblingDB("admin").aggregate( [
{ $currentOp: { allUsers: true, localOps: true } },
{ $match: { desc: "query analyzer" } }
] )
This pipeline returns output similar to the following:此管道返回类似于以下内容的输出:
When run on a 当在作为复制集一部分的mongod
that is part of a replica set:mongod
上运行时:
{
"desc" : "query analyzer",
"ns" : "testDb.testColl",
"collUuid" : UUID("ed9dfb1d-5b7c-4c6b-82e9-b0f537335795"),
"samplesPerSecond" : 5,
"startTime" : ISODate("2023-08-08T16:23:22.846Z"),
"sampledReadsCount" : NumberLong(2),
"sampledReadsBytes" : NumberLong(346),
"sampledWritesCount" : NumberLong(3),
"sampledWritesBytes" : NumberLong(904)
}
When run on a 当在属于分片集群的mongos
that is part of a sharded cluster:mongos
上运行时:
{
"desc" : "query analyzer",
"ns" : "testDb.testColl",
"collUuid" : UUID("5130b4df-5966-434f-85f0-f8956b5ca74e"),
"samplesPerSecond" : 5,
"startTime" : ISODate("2023-08-08T16:15:07.427Z"),
"sampledReadsCount" : NumberLong(2),
"sampledWritesCount" : NumberLong(3)
}
When run on a 当在属于分片集群的mongod --shardsvr
that is part of a sharded cluster:mongod -shardsvr
上运行时:
{
"desc" : "query analyzer",
"ns" : "testDb.testColl",
"collUuid" : UUID("5130b4df-5966-434f-85f0-f8956b5ca74e"),
"startTime" : ISODate("2023-08-08T16:15:07.427Z"),
"sampledReadsCount" : NumberLong(2),
"sampledReadsBytes" : NumberLong(346),
"sampledWritesCount" : NumberLong(3),
"sampledWritesBytes" : NumberLong(904)
}
Output Fields输出字段
Each output document may contain a subset of the following fields, as relevant for the operation:每个输出文档可能包含与操作相关的以下字段的子集:
$currentOp.type
-
The type of operation. Values are either:操作的类型。值为:op
idleSession
idleCursor
If the如果$currentOp.type
isop
,$currentOp.op
provides details on the specific operation.$currentOp.type
是op
,则$currentOp.op
会提供有关特定操作的详细信息。
$currentOp.shard
-
The name of the shard where the operation is running.运行操作的分片的名称。Only present for sharded clusters.仅适用于分片群集。
$currentOp.connectionId
-
An identifier for the connection where the specific operation originated.发起特定操作的连接的标识符。
$currentOp.client
-
The IP address (or hostname) and the ephemeral port of the client connection where the operation originates.发起操作的客户端连接的IP地址(或主机名)和临时端口。For multi-document transactions,对于多文档事务,$currentOp.client
stores information about the most recent client to run an operation inside the transaction.$currentOp.client
存储有关在事务中运行操作的最新客户端的信息。For standalones and replica sets only仅适用于单机版和复制集
$currentOp.client_s
-
The IP address (or hostname) and the ephemeral port of the发起操作的mongos
where the operation originates.mongos
的IP地址(或主机名)和临时端口。For sharded clusters only仅适用于分片群集
$currentOp.clientMetadata
-
Additional information on the client.有关客户端的其他信息。For multi-document transactions,对于多文档事务,$currentOp.client
stores information about the most recent client to run an operation inside the transaction.$currentOp.client
存储有关在事务中运行操作的最新客户端的信息。
$currentOp.appName
-
The identifier of the client application which ran the operation.运行该操作的客户端应用程序的标识符。Use the使用appName
connection string option to set a custom value for theappName
field.appName
连接字符串选项为appName
字段设置自定义值。
$currentOp.active
-
A boolean value specifying whether the operation has started.指定操作是否已启动的布尔值。Value is如果操作已启动,则值为true
if the operation has started orfalse
if the operation is idle, such as an idle connection, an inactive session, or an internal thread that is currently idle.true
;如果操作处于空闲状态(例如空闲连接、非活动会话或当前空闲的内部线程),则为false
。An operation can be active even if the operation has yielded to another operation.即使某个操作已让位给另一个操作,该操作也可以处于活动状态。
$currentOp.twoPhaseCommitCoordinator
-
Information on either:以下信息之一:-
The commit coordination metrics for a transaction whose write operations span multiple shards.写入操作跨越多个分片的事务的提交协调度量。Commit coordination is handled by a shard, and提交协调由分片处理,$currentOp
(run either on amongos
or a shard member) returns a shard's coordination information only for transactions the shard is currently coordinating.$currentOp
(在mongos
或分片成员上运行)仅为分片当前正在协调的事务返回分片的协调信息。To filter for only the commit coordination metrics:要仅筛选提交协调度量,请执行以下操作:db.getSiblingDB("admin").aggregate( [
{ $currentOp: { allUsers: true, idleSessions: true } },
{ $match: { desc: "transaction coordinator" } }
] ) -
A specific commit coordination operation (i.e.事务协调器派生的特定提交协调操作(即type
isop
anddesc
is"TransactionCoordinator"
) spawned by the transaction coordinator.type
为op
,desc
为"TransactionCoordinator"
)。
NoteIf run with idleSessions: false,如果使用$currentOp
does not return the$currentOp.twoPhaseCommitCoordinator
information ininactive
state
idleSessions: false
运行,则$currentOp
不会返回处于inactive
状态的$currentOp.twoPhaseCommitCoordinator
信息If access control is enabled and allUsers: false,如果启用了访问控制并且$currentOp
does not return$currentOp.twoPhaseCommitCoordinator
information.allUsers: false
,则$currentOp
不会返回$currentOp.twoPhaseCommitCoordinator
信息。
New in version 4.2.1.4.2.1版新增。$currentOp.twoPhaseCommitCoordinator.lsid
-
The session identifier for the multi-shard transaction.多分片事务的会话标识符。The combination of thelsid
andtxnNumber
identifies the transaction.lsid
和txnNumber
的组合标识事务。Available for both the commit coordination metrics and for specific coordination operation.可用于提交协调度量和特定协调操作。New in version 4.2.1.4.2.1版新增。
$currentOp.twoPhaseCommitCoordinator.txnNumber
-
The transaction number for the multi-shard transaction.多分片事务的事务编号。The combination of thetxnNumber
andlsid
identifies the transaction.txnNumber
和lsid
的组合标识事务。Available for both the commit coordination metrics and for specific coordination operation.可用于提交协调度量和特定协调操作。New in version 4.2.1.4.2.1版新增。
$currentOp.twoPhaseCommitCoordinator.action
-
The specific commit coordination operation spawned by the transaction coordinator:事务协调器派生的特定提交协调操作:"sendingPrepare"
"sendingCommit"
"sendingAbort"
"writingParticipantList"
"writingDecision"
"deletingCoordinatorDoc"
Only available for specific coordination operation.仅适用于特定的协调操作。New in version 4.2.1.4.2.1版新增。
$currentOp.twoPhaseCommitCoordinator.startTime
-
The start date and time of theaction
.action
的开始日期和时间。Only available for specific coordination operation.仅适用于特定的协调操作。New in version 4.2.1.4.2.1版新增。
$currentOp.twoPhaseCommitCoordinator.numParticipants
-
Number of shards participating in this commit.参与此提交的分片数。Only available for the commit coordination metrics.仅适用于提交协调度量。New in version 4.2.1.4.2.1版新增。
$currentOp.twoPhaseCommitCoordinator.state
-
The current step/state of the commit coordination process.提交协调过程的当前步骤/状态。Step/stage步骤、阶段Description描述inactive
Not actively part of a commit.未主动参与承诺。writingParticipantList
Writing a local record of the list of shards that are part of this multi-shard transaction.编写属于此多分片事务的分片列表的本地记录。waitingForVotes
Waiting for the participants to respond with vote to commit or abort.等待参与者通过投票做出响应以提交或中止。writingDecision
Writing a local record of the coordinator's decision to commit or abort based on votes.编写协调员根据投票决定提交或中止的本地记录。waitingForDecisionAck
Waiting for participants to acknowledge the coordinator's decision to commit or abort.等待参与者确认协调员提交或中止的决定。deletingCoordinatorDoc
Deleting the local record of commit decision.删除提交决定的本地记录。Only available for the commit coordination metrics.仅适用于提交协调度量。See also另请参阅$currentOp.twoPhaseCommitCoordinator.stepDurations
.$currentOp.twoPhaseCommitCoordinator.stepDurations
。New in version 4.2.1.4.2.1版新增。
$currentOp.twoPhaseCommitCoordinator.commitStartTime
-
The date and time when the commit started.提交开始的日期和时间。Only available for the commit coordination metrics.仅适用于提交协调度量。New in version 4.2.1.4.2.1版新增。
$currentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailover
-
A boolean that indicates whether the commit coordination was restarted due to failover on the shard that is coordinating the commit.一个布尔值,指示是否由于协调提交的分片上的故障转移而重新启动了提交协调。If如果hasRecoveredFromFailover
is true, then the times specified in$currentOp.twoPhaseCommitCoordinator.stepDurations
may not be accurate for all steps.hasRecoveredFromFailover
为true
,则$currentOp.twoPhaseCommitCoordinator.stepDurations
中指定的时间可能不适用于所有步骤。Only available for the commit coordination metrics.仅适用于提交协调度量。New in version 4.2.1.4.2.1版新增。
$currentOp.twoPhaseCommitCoordinator.stepDurations
-
A document that contains the duration, in microseconds, of the completed or in-progress一种文档,包含活动过程的已完成或正在进行的steps/state
of the active process as well as the cumulative total duration;steps/state
的持续时间(以微秒为单位)以及累计总持续时间;for example:例如:"stepDurations" : {
"writingParticipantListMicros" : NumberLong(17801),
"totalCommitDurationMicros" : NumberLong(42488463),
"waitingForVotesMicros" : NumberLong(30378502),
"writingDecisionMicros" : NumberLong(15015),
"waitingForDecisionAcksMicros" : NumberLong(12077145),
"deletingCoordinatorDocMicros" : NumberLong(6009)
},If如果$currentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailover
is true, then the times specified instepDurations
may not be accurate for all steps.$currentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailover
为true
,则stepDurations
中指定的时间可能不适用于所有步骤。For a coordinator in an对于处于inactive
state, the document is empty:inactive
状态的协调员,文档为空:"stepDurations" : {
}Only available for the commit coordination metrics.仅适用于提交协调度量。See请参阅$currentOp.twoPhaseCommitCoordinator.state
.$currentOp.twoPhaseCommitCoordinator.state
。New in version 4.2.1.4.2.1版新增。
$currentOp.twoPhaseCommitCoordinator.decision
-
A document that contains the commit/abort decision, for example:包含提交/中止决定的文档,例如:For a commit decision:对于提交决定:"decision" : {
"decision" : "commit",
"commitTimestamp" : Timestamp(1572034669, 3)
}For an abort decision:对于中止决定:"decision" : {
"decision" : "abort",
"abortStatus" : {
"code" : 282,
"codeName" : "TransactionCoordinatorReachedAbortDecision",
"errmsg" : "Transaction exceeded deadline"
}
}
Only available for the commit coordination metrics.仅适用于提交协调度量。New in version 4.2.1.4.2.1版新增。
$currentOp.twoPhaseCommitCoordinator.deadline
-
The date and time by which the commit must finish.提交必须完成的日期和时间。Only available for the commit coordination metrics.仅适用于提交协调度量。New in version 4.2.1.4.2.1版新增。
-
$currentOp.effectiveUsers
-
An array that contains a document for each user associated with the operation.一个数组,包含与操作相关联的每个用户的文档。Each user document contains the每个用户文档都包含user
name and the authenticationdb
.user
名称和身份验证数据库。TipSee also:另请参阅:
$currentOp.runBy
-
An array that contains a document for each user who is impersonating the一个数组,其中包含模拟操作的effectiveUser(s)
for the operation.effectiveUser(s)
的每个用户的文档。The runBy document contains therunBy文档包含user
name and the authenticationdb
.user
名称和身份验证db
。In general, the impersonating user is the通常,模拟用户是__system
user; e.g.__system
用户;例如。"runBy" : [
{
"user" : "__system",
"db" : "local"
}
]
$currentOp.opid
-
The identifier for the operation. You can pass this value to操作的标识符。您可以将此值传递给db.killOp()
inmongosh
to terminate the operation.mongosh
中的db.killOp()
以终止操作。WarningTerminate running operations with extreme caution. Only use终止运行操作时要格外小心。仅使用db.killOp()
to terminate operations initiated by clients and do not terminate internal database operations.db.killOp()
终止客户端启动的操作,而不终止内部数据库操作。
$currentOp.secs_running
-
The duration of the operation in seconds.操作的持续时间(秒)。MongoDB calculates this value by subtracting the current time from the start time of the operation.MongoDB通过从操作的开始时间减去当前时间来计算这个值。Only present if the operation is running; i.e. if仅在操作正在运行时出现;即如果active
istrue
.active
为true
。
$currentOp.microsecs_running
-
The duration of the operation in microseconds. MongoDB calculates this value by subtracting the current time from the start time of the operation.操作的持续时间(以微秒为单位)。MongoDB通过从操作的开始时间减去当前时间来计算这个值。Only present if the operation is running; i.e. if仅在操作正在运行时出现;即如果active
istrue
.active
为true
。
$currentOp.lsid
-
The session identifier.会话标识符。Only present if the operation is associated with a session.仅当操作与会话关联时才显示。
$currentOp.transaction
-
A document that contains multi-document transaction information.包含多文档事务信息的文档。Only present if the operation is part of a transaction:仅当操作是事务的一部分时存在:Present starting in 4.0 for transactions on a replica set.从4.0开始,在副本集上的事务上呈现。Present starting in 4.2 for transactions on a sharded cluster if从4.2开始,如果$currentOp
is run without localOps: true. The transaction information is per shard.$currentOp
在没有localOps: true
的情况下运行,则在分片集群的事务上呈现。事务信息是按分片的。Present starting in 4.2.1 for transactions on a sharded cluster if从4.2.1开始,如果$currentOp
is run with localOps: true.$currentOp
与localOps: true
一起运行,则为分片集群上的事务呈现。The transaction information is a composite view rather than per shard.事务信息是一个复合视图,而不是每个分片。
$currentOp.transaction.parameters
-
A document that contains information on multi-document transaction.包含多文档事务信息的文档。Only present if the operation is part of a multi-document transaction.仅当操作是多文档事务的一部分时才显示。$currentOp.transaction.parameters.txnNumber
-
The transaction number.事务记录编号。Only present if the operation is part of a multi-document transaction.仅当操作是多文档事务的一部分时才显示。
$currentOp.transaction.parameters.autocommit
-
A boolean flag that indicates if autocommit is on for the transaction.指示事务是否启用自动提交的布尔标志。Only present if the operation is part of a multi-document transaction.仅当操作是多文档事务的一部分时才显示。
$currentOp.transaction.parameters.readConcern
-
The read concern for the transaction.事务的读取关注。Multi-document transactions support read concern多文档事务支持读取关注"snapshot"
,"local"
, and"majority"
."snapshot"
、"local"
和"majority"
。Only present if the operation is part of a multi-document transaction.仅当操作是多文档事务的一部分时才显示。
$currentOp.transaction.globalReadTimestamp
-
The timestamp of the snapshot read by the operations in the sharded cluster transaction that uses "snapshot" read concern.使用“快照”读取关注的分片集群事务中的操作读取的快照的时间戳。For transactions on sharded clusters, the read concern对于分片集群上的事务,数据的读取关注"snapshot"
of the data is synchronized across shards; i.e. other read concerns cannot guarantee that the data is from the same snapshot view across the shards."snapshot"
是跨分片同步的;即,其他读取关注不能保证数据来自分片之间的同一快照视图。Only present when run with localOps: true for sharded cluster transactions.仅在针对分片集群事务使用localOps: true
运行时才显示。New in version 4.2.1.4.2.1版新增。
$currentOp.transaction.readTimestamp
-
The timestamp of the snapshot being read by the operations in this transaction此事务中的操作正在读取的快照的时间戳Only present if the operation is part of a multi-document transaction.仅当操作是多文档事务的一部分时才显示。However, the field is not returned if:但是,如果出现以下情况,则不会返回该字段:the transaction is on a sharded cluster and uses "snapshot" read concern, and事务位于分片集群上,并使用"snapshot"
读取关注,并且$currentOp
is run with localOps: true.$currentOp
使用localOps:true
运行。
Instead,并且返回$currentOp.transaction.globalReadTimestamp
is returned.$currentOp.transaction.globalReadTimestamp
。
$currentOp.transaction.startWallClockTime
-
The date and time (with time zone) of the transaction start.事务开始的日期和时间(带时区)。Only present if the operation is part of a multi-document transaction.仅当操作是多文档事务的一部分时才显示。
$currentOp.transaction.timeOpenMicros
-
The duration, in microseconds, for the transaction.事务的持续时间(以微秒为单位)。The添加到timeActiveMicros
value added to thetimeInactiveMicros
should equal thetimeOpenMicros
.timeActiveMicros
的timeInactiveMicros
值应等于timeOpenMicros
。Only present if the operation is part of a multi-document transaction.仅当操作是多文档事务的一部分时才显示。
$currentOp.transaction.timeActiveMicros
-
The total amount of time that the transaction has been active; i.e. when the transaction had operations running.事务处于活动状态的总时间;即当事务运行操作时。The添加到timeActiveMicros
value added to thetimeInactiveMicros
should equal thetimeOpenMicros
.timeInactiveMicros
的timeActiveMicros
值应等于timeOpenMicros
。Only present if the operation is part of a multi-document transaction.仅当操作是多文档事务的一部分时才显示。
$currentOp.transaction.timeInactiveMicros
-
The total amount of time that the transaction has been inactive; i.e. when the transaction had no operations running.事务处于非活动状态的总时间;即当事务没有运行任何操作时。The添加到timeInactiveMicros
value added to thetimeActiveMicros
should equal thetimeOpenMicros
.timeActiveMicros
的timeInactiveMicros
值应等于timeOpenMicros
。Only present if the operation is part of a multi-document transaction.仅当操作是多文档事务的一部分时才显示。
$currentOp.transaction.numParticipants
-
Number of shards participating in this transaction.参与此事务的分片数。Only present if the operation is part of a transaction on a sharded cluster and仅当操作是分片集群上事务的一部分并且$currentOp
is run with localOps: true$currentOp
使用localOps:true
运行时才存在New in version 4.2.1.4.2.1版新增。
$currentOp.transaction.participants
-
An array of documents detailing the participating shards in this transaction. Each document contains the name, a flag indicating if the shard acts as the commit coordinator, and a flag indicating if the shard is only involved in read operations for the transaction.一组详细说明此事务中参与分片的文档。每个文档都包含名称、一个指示分片是否充当提交协调器的标志,以及一个指示分片是否只参与事务的读取操作的标志。{
"name" : "shardA",
"coordinator" : false,
"readOnly" : false
}Only present if the operation is part of a transaction on a sharded cluster and仅当操作是分片集群上事务的一部分并且$currentOp
is run with localOps: true$currentOp
使用localOps:true
运行时才存在New in version 4.2.1.4.2.1版新增。
$currentOp.transaction.numReadOnlyParticipants
-
Number of shards only affected by read operations in this transaction.此事务中仅受读取操作影响的分片数。Only present if the operation is part of a transaction on a sharded cluster and仅当操作是分片集群上事务的一部分并且$currentOp
is run with localOps: true$currentOp
使用localOps:true
运行时才存在New in version 4.2.1.4.2.1版新增。
$currentOp.transaction.numNonReadOnlyParticipants
-
Number of shards affected by operations other than reads in this transaction.此事务中受读取以外的操作影响的分片数。Only present if the operation is part of a transaction on a sharded cluster and仅当操作是分片集群上事务的一部分并且$currentOp
is run with localOps: true$currentOp
使用localOps:true
运行时才存在New in version 4.2.1.4.2.1版新增。
$currentOp.transaction.expiryTime
-
The date and time (with time zone) when the transaction will time out and abort.事务超时和中止的日期和时间(带时区)。The$currentOp.transaction.expiryTime
equals the$currentOp.transaction.startWallClockTime
+ thetransactionLifetimeLimitSeconds
.$currentOp.transaction.expiryTime
等于$currentOp.transaction.startWallClockTime
+transactionLifetimeLimitSeconds
。For more information, see Runtime Limit for transactions.有关详细信息,请参阅事务的运行时限制。Only present if the operation is part of a multi-document transaction.仅当操作是多文档事务的一部分时才显示。
$currentOp.op
-
A string that identifies the specific operation type. Only present if标识特定操作类型的字符串。仅在$currentOp.type
isop
.$currentOp.type
为op
时存在。The possible values are:可能的值为:"none"
"update"
"insert"
"query"
"command"
"getmore"
"remove"
"killcursors"
"command"
operations include most commands such as thecreateIndexes
,aggregate
, andfindAndModify
."command"
操作包括大多数命令,如createIndexes
、aggregate
和findAndModify
。"query"
operations includefind
operations and OP_QUERY operations."query"
操作包括find
操作和OP_QUERY
操作。
$currentOp.ns
-
The namespace the operation targets.操作的目标命名空间。A namespace consists of the database name and the collection name concatenated with a dot (名称空间由数据库名称和集合名称组成,集合名称用句点(.
); that is,"<database>.<collection>"
..
)连接;即"<database>.<collection>"
。
$currentOp.command
-
A document containing the full command object associated with this operation.包含与此操作关联的完整命令对象的文档。For example, the following output contains the command object for a例如,以下输出包含对名为find
operation on a collection nameditems
in a database namedtest
:test
的数据库中名为items
的集合执行find
操作的命令对象:"command" : {
"find" : "items",
"filter" : {
"sku" : 1403978
},
...
"$db" : "test"
}The following example output contains the command object for a以下示例输出包含getMore
operation generated by a command with cursor ID19234103609
on a collection nameditems
in a database namedtest
:getMore
操作的命令对象,该操作由游标ID为19234103609
的命令在名为test
的数据库中的名为items
的集合上生成:"command" : {
"getMore" : NumberLong("19234103609"),
"collection" : "items",
"batchSize" : 10,
...
"$db" : "test"
},If the command document exceeds 1 kilobyte, the document has the following form:如果命令文档超过1 KB,则该文档具有以下形式:"command" : {
"$truncated": <string>,
"comment": <string>
}The$truncated
field contains a string summary of the document excluding the document'scomment
field if present. If the summary still exceeds 1 kilobyte then it is further truncated, denoted by an ellipsis (...) at the end of the string.$truncated
字段包含文档的字符串摘要,不包括文档的comment
字段(如果存在)。如果摘要仍然超过1 KB,则会进一步截断,由字符串末尾的省略号(…)表示。The如果将注释传递给操作,则会出现comment
field is present if a comment was passed to the operation. Starting in MongoDB 4.4, a comment may be attached to any database command.comment
字段。从MongoDB 4.4开始,任何数据库命令都可以附加注释。
$currentOp.cursor
-
A document that contains the cursor information for包含idleCursor
andgetmore
operations; i.e. wheretype
isidleCursor
orop
isgetmore
.idleCursor
和getmore
操作的游标信息的文档;即,其中type
为idleCursor
或op
为getmore
。If reporting on a如果在getmore
operation before thegetmore
has accessed its cursor information, thecursor
field is not available.getmore
访问其游标信息之前报告getmore
操作,则cursor
字段不可用。$currentOp.cursor.lastAccessDate
-
The date and time when the cursor was last used.上次使用游标的日期和时间。If the cursor is actively in use (i.e.如果游标正在使用中(即op
isgetmore
and thetype
is notidleCursor
), thenlastAccessDate
reports either the time the previousgetmore
ended or the time the cursor was created if this is the firstgetmore
.op
是getmore
,type
不是idleCursor
),那么lastAccessDate
报告上一个getmore
结束的时间,或者如果这是第一个getmore
,则报告创建游标的时间。
$currentOp.cursor.nDocsReturned
-
The cumulative number of documents returned by the cursor.游标返回的累计文档数。
$currentOp.cursor.nBatchesReturned
-
The cumulative number of batches returned by the cursor.游标返回的累计批次数。
$currentOp.cursor.noCursorTimeout
-
The flag that indicates that the cursor doesn't timeout when idle; i.e. if the cursor has the指示游标在空闲时没有超时的标志;即,如果游标设置了noTimeout
option set.noTimeout
选项。If true, the cursor does not time out when idle.如果为true
,则游标在空闲时不会超时。If false, the cursor times out when idle.如果为false
,则游标在空闲时超时。
TipSee also:另请参阅:
$currentOp.cursor.tailable
-
The flag that indicates if the cursor is a tailable cursor for a capped collection. Tailable cursors remain open after the client exhausts the results in the initial cursor.用于指示游标是否是带帽集合的可裁剪游标的标志。在客户端耗尽初始游标中的结果后,可跟踪游标保持打开状态。TipSee also:另请参阅:
$currentOp.cursor.awaitData
-
The flag that indicates whether the tailable cursor should temporarily block a指示可裁剪游标是否应在等待新数据而不是不返回任何数据时临时阻止游标上的getMore
command on the cursor while waiting for new data rather than returning no data.getMore
命令的标志。For non-tailable cursors, the value is always false.对于不可裁剪的游标,该值始终为false
。TipSee also:另请参阅:
$currentOp.cursor.originatingCommand
-
TheoriginatingCommand
field contains the full command object (e.g.find
oraggregate
) which originally created the cursor.originatingCommand
字段包含最初创建游标的完整命令对象(例如find
或aggregate
)。
$currentOp.cursor.planSummary
-
A string that specifies whether the cursor uses a collection scan (一个字符串,用于指定游标是使用集合扫描(COLLSCAN
) or an index scan (IXSCAN { ... }
).COLLSCAN
)还是索引扫描(IXSCAN { ... }
)。TheIXSCAN
also includes the specification document of the index used.IXSCAN
还包括所使用索引的规范文档。Not available when running with在localOps: true
onmongos
or when reporting onidleCursors
.mongos
上使用localOps: true
运行或在idleCursors
上报告时不可用。
$currentOp.cursor.queryFramework
New in version 6.2.6.2版新增。A string that specifies the query framework used to process an operation.指定用于处理操作的查询框架的字符串。
$currentOp.planSummary
-
A string that specifies whether the cursor uses a collection scan (一个字符串,用于指定游标是使用集合扫描(COLLSCAN
) or an index scan (IXSCAN { ... }
).COLLSCAN
)还是索引扫描(IXSCAN { ... }
)。Not available when running with在localOps: true
onmongos
.mongos
上使用localOps: true
运行时不可用。
$currentOp.prepareReadConflicts
-
The number of times the current operation had to wait for a prepared transaction with a write to commit or abort.当前操作必须等待准备好的带有写入的事务才能提交或中止的次数。While waiting, the operation continues to hold any necessary locks and storage engine resources.在等待期间,操作将继续保留任何必要的锁和存储引擎资源。
$currentOp.writeConflicts
-
The number of times the current operation conflicted with another write operation on the same document.当前操作与同一文档上的另一写入操作冲突的次数。
$currentOp.numYields
-
numYields
is a counter that reports the number of times the operation has yielded to allow other operations to complete.是一个计数器,用于报告操作为允许其他操作完成而让步的次数。Typically, operations yield when they need access to data that MongoDB has not yet fully read into memory.通常情况下,当操作需要访问MongoDB尚未完全读取到内存中的数据时,它们就会屈服。This allows other operations that have data in memory to complete quickly while MongoDB reads in data for the yielding operation.这允许内存中有数据的其他操作快速完成,同时MongoDB读取数据进行让步操作。
$currentOp.dataThroughputLastSecond
-
Amount of data (in MiB) processed by thevalidate
operation in the last second.validate
操作在最后一秒内处理的数据量(MiB)。Only available for a仅适用于当前正在扫描文档的validate
operation that is currently scanning documents.validate
操作。For example:例如:"msg" : "Validate: scanning documents Validate: scanning documents: 7258/24000 30%",
"progress" : {
"done" : 7258,
"total" : 24000
},
"numYields" : 0,
"dataThroughputLastSecond" : 15.576952934265137,
"dataThroughputAverage" : 15.375944137573242,New in version 4.4.4.4版新增。
$currentOp.dataThroughputAverage
-
The average amount of data (in MiB) processed by thevalidate
operation.validate
操作处理的平均数据量(以MiB为单位)。Only available for a仅适用于当前正在扫描文档的validate
operation that is currently scanning documents.validate
操作。For example:例如:"msg" : "Validate: scanning documents Validate: scanning documents: 7258/24000 30%",
"progress" : {
"done" : 7258,
"total" : 24000
},
"numYields" : 0,
"dataThroughputLastSecond" : 15.576952934265137,
"dataThroughputAverage" : 15.375944137573242,New in version 4.4.4.4版新增。
$currentOp.waitingForLatch
-
ThewaitingForLatch
document is only available if the operation is waiting to acquire an internal locking primitive (a.k.a. a latch) or for an internal condition to be met.waitingForLatch
文档仅在操作等待获取内部锁定原语(也称为闩锁)或满足内部条件时可用。For example,
"waitingForLatch" : {
"timestamp" : ISODate("2020-03-19T23:25:58.412Z"),
"captureName" : "FutureResolution",
"backtrace" : [ ] // Only if backtrace: true
},Output Field输出字段Description描述timestamp The date and time at which the operation started to wait.操作开始等待的日期和时间。captureName The internal name of the section where the operation is currently blocked.当前阻止操作的节的内部名称。backtrace The callstack, if available.调用堆栈(如果可用)。The field is only included if backtrace: true.仅当backtrace:true
时才包括该字段。New in version 4.2.2.4.2.2版新增。
$currentOp.locks
-
Thelocks
document reports the type and mode of locks the operation currently holds.locks
文档报告操作当前持有的锁的类型和模式。The possible lock types are as follows:可能的锁类型如下:Lock Type锁定类型Description描述ParallelBatchWriterMode
Represents a lock for parallel batch writer mode.表示并行批处理写入程序模式的锁。
In earlier versions, PBWM information was reported as part of the在早期版本中,PBWM信息被报告为Global
lock information.Global
锁定信息的一部分。New in version 4.2.4.2版新增。ReplicationStateTransition
Represents lock taken for replica set member state transitions.表示副本集成员状态转换的锁定。New in version 4.2.4.2版新增。Global
Represents global lock.表示全局锁。Database
Represents database lock.表示数据库锁定。Collection
Represents collection lock.表示集合锁。Mutex
Represents mutex.表示互斥。Metadata
Represents metadata lock.表示元数据锁定。oplog
Represents lock on the oplog.表示oplog上的锁定。The possible modes are as follows:可能的模式如下:Lock Mode锁定模式Description描述R
Represents Shared (S) lock.表示共享(S)锁。W
Represents Exclusive (X) lock.表示独占(X)锁。r
Represents Intent Shared (IS) lock.表示意向共享(IS)锁。w
Represents Intent Exclusive (IX) lock.表示意向独占(IX)锁。
$currentOp.lockStats
-
For each lock type and mode (see对于每个锁类型和模式(请参见locks
for descriptions of lock types and modes), returns the following information:locks
以了解锁类型和方式的描述),返回以下信息:$currentOp.lockStats.acquireCount
-
Number of times the operation acquired the lock in the specified mode.操作在指定模式下获取锁的次数。
$currentOp.lockStats.acquireWaitCount
-
Number of times the operation had to wait for the由于锁定处于冲突模式,操作必须等待acquireCount
lock acquisitions because the locks were held in a conflicting mode.acquireCount
锁定获取的次数。acquireWaitCount
is less than or equal toacquireCount
.acquireWaitCount
小于或等于acquireCount
。
$currentOp.lockStats.timeAcquiringMicros
-
Cumulative time in microseconds that the operation had to wait to acquire the locks.操作必须等待以获取锁的累计时间(以微秒为单位)。timeAcquiringMicros
divided byacquireWaitCount
gives an approximate average wait time for the particular lock mode.timeAcquiringMicros
除以acquireWaitCount
得出特定锁定模式的近似平均等待时间。
$currentOp.waitingForLock
-
Returns a boolean value.返回布尔值。如果操作正在等待锁,则waitingForLock
istrue
if the operation is waiting for a lock andfalse
if the operation has the required lock.waitingForLock
为true
;如果操作具有所需的锁,则为false
。
$currentOp.msg
-
Themsg
provides a message that describes the status and progress of the operation. In the case of indexing or mapReduce operations, the field reports the completion percentage.msg
提供一条消息,描述操作的状态和进度。在索引或mapReduce操作的情况下,该字段报告完成百分比。
$currentOp.progress
-
Reports on the progress of mapReduce or indexing operations.报告mapReduce或索引操作的进度。Theprogress
fields corresponds to the completion percentage in themsg
field.progress
字段对应于msg
字段中的完成百分比。Theprogress
specifies the following information:progress
指定了以下信息:
$currentOp.killPending
-
Returns如果操作当前被标记为终止,则返回true
if the operation is currently flagged for termination.true
。When the operation encounters its next safe termination point, the operation terminates.当操作遇到下一个安全终止点时,操作将终止。
$currentOp.waitingForFlowControl
-
A boolean that indicates if the operation had to wait because of flow control.一个布尔值,指示操作是否由于流控制而必须等待。
$currentOp.flowControlStats
-
The flow control statistics for this operation.此操作的流控制统计信息。$currentOp.flowControlStats.acquireCount
-
The number of times this operation acquired a ticket.此操作获取票证的次数。
$currentOp.totalOperationTimeElapsed
-
The total time elapsed, in seconds, for the current resharding operation.当前重新分片操作所用的总时间(以秒为单位)。The time is set to 0 when a new resharding operation starts.新的重新分片操作开始时,时间设置为0。Only present if a resharding operation is taking place.只有在进行重新分片操作时才出现。New in version 5.0.5.0版新增。
$currentOp.remainingOperationTimeEstimated
-
The estimated time remaining in seconds for the current resharding operation.当前重新分片操作的估计剩余时间(以秒为单位)。The time is set to -1 when a new resharding operation starts.新的重新分片操作开始时,时间设置为-1。Only present when a resharding operation is taking place.仅在进行重新分片操作时出现。This field may not be present if an estimate cannot not be computed.如果无法计算估计值,则此字段可能不存在。New in version 5.0.5.0版新增。
$currentOp.approxDocumentsToCopy
-
The approximate number of documents to be copied from the donor shards to the recipient shards during the resharding operation.在重新分片操作期间,要从供体分片复制到接收方分片的文档的大致数量。This number is an estimate that is set at the beginning of the resharding operation and does not change after it has been set.此数字是在重新分片操作开始时设置的估计值,在设置后不会更改。The number is set to 0 when a new resharding operation starts.当新的重新分片操作开始时,该数字设置为0。It is possible for如果重新分片后的数据分布不是完全一致的,则$currentOp.documentsCopied
and$currentOp.bytesCopied
to end up exceeding$currentOp.approxDocumentsToCopy
and$currentOp.approxBytesToCopy
, respectively, if the post-resharding data distribution is not perfectly uniform.$currentOp.documentsCopied
和$currentOp.bytesCopied
最终可能分别超过$currentOp.approxDocumentsToCopy
和$currentOp.approxBytesToCopy
。Only present on a recipient shard when a resharding operation is taking place.仅在进行重新分片操作时出现在收件人分片上。New in version 5.0.5.0版新增。
$currentOp.documentsCopied
-
The number of documents copied form donor shards to recipient shards during the resharding operation.在重新分片操作期间,从施主分片复制到接收者分片的文档数。The number is set to 0 when a new resharding operation starts.当新的重新分片操作开始时,该数字设置为0。Only present on a recipient shard when a resharding operation is taking place.仅在进行重新分片操作时出现在收件人分片上。New in version 5.0.5.0版新增。
$currentOp.approxBytesToCopy
-
The approximate number of bytes to be copied from the donor shards to the recipient shards during the resharding operation.在重新分片操作期间,要从供体分片复制到接收方分片的大致字节数。This number is an estimate that is set at the beginning of the resharding operation and does not change after it has been set.此数字是在重新分片操作开始时设置的估计值,在设置后不会更改。The number is set to 0 when a new resharding operation starts. It is possible for当新的重新分片操作开始时,该数字设置为0。如果重新分片后的数据分布不是完全一致的,则$currentOp.documentsCopied
and$currentOp.bytesCopied
to end up exceeding$currentOp.approxDocumentsToCopy
and$currentOp.approxBytesToCopy
, respectively, if the post-resharding data distribution is not perfectly uniform.$currentOp.documentsCopied
和$currentOp.bytesCopied
最终可能分别超过$currentOp.approxDocumentsToCopy
和$currentOp.approxBytesToCopy
。Only present on a recipient shard when a resharding operation is taking place.仅在进行重新分片操作时出现在收件人分片上。New in version 5.0.5.0版新增。
$currentOp.bytesCopied
-
The number of bytes copied from donor shards to recipient shards during the resharding operation.在重新分片操作期间从施主分片复制到接收者分片的字节数。The number is set to 0 when a new resharding operation starts.当新的重新分片操作开始时,该数字设置为0。Only present on a recipient shard when a resharding operation is taking place.仅在进行重新分片操作时出现在收件人分片上。New in version 5.0.5.0版新增。
$currentOp.totalCopyTimeElapsed
-
The total elapsed time, in seconds, for ongoing data copy tasks from donor shards to recipient shards for the current resharding operation.当前重新分片操作中从施主分片到接收者分片的正在进行的数据复制任务的总运行时间(以秒为单位)。The time is set to 0 when a new resharding operation starts.新的重新分片操作开始时,时间设置为0。Only present on a recipient shard when a resharding operation is taking place.仅在进行重新分片操作时出现在收件人分片上。New in version 5.0.5.0版新增。
$currentOp.oplogEntriesFetched
-
The number of entries fetched from the oplog for the current resharding operation.从oplog中为当前重新分片操作提取的条目数。The number is set to 0 when a new resharding operation starts.当新的重新分片操作开始时,该数字设置为0。Only present on a recipient shard when a resharding operation is taking place.仅在进行重新分片操作时出现在收件人分片上。New in version 5.0.5.0版新增。
$currentOp.oplogEntriesApplied
-
The number of entries applied to the oplog for the current resharding operation.应用于当前重新分片操作的oplog的条目数。The number is set to 0 when a new resharding operation starts.当新的重新分片操作开始时,该数字设置为0。Only present on a recipient shard when a resharding operation is taking place.仅在进行重新分片操作时出现在收件人分片上。New in version 5.0.5.0版新增。
$currentOp.totalApplyTimeElapsed
-
The total elapsed time, in seconds, for the apply step of the current resharding operation.当前重新分片操作的应用步骤的总运行时间(以秒为单位)。In the apply step, recipient shards apply oplog entries to modify their data based on new incoming writes from donor shards.在应用步骤中,接收方分片应用oplog条目,以基于来自施主分片的新传入写入来修改其数据。The time is set to 0 when a new resharding operation starts.新的重新分片操作开始时,时间设置为0。Only present on a recipient shard when a resharding operation is taking place.仅在进行重新分片操作时出现在收件人分片上。New in version 5.0.5.0版新增。
$currentOp.countWritesDuringCriticalSection
-
The number of writes performed in the critical section for the current resharding operation.在关键部分中为当前重新分片操作执行的写入次数。The critical section prevents new incoming writes to the collection currently being resharded.关键部分防止对当前正在重新分片的集合进行新的传入写入。The number is set to 0 when a new resharding operation starts.当新的重新分片操作开始时,该数字设置为0。Only present on a donor shard when a resharding operation is taking place.仅在进行重新分片操作时出现在施主分片上。New in version 5.0.5.0版新增。
$currentOp.totalCriticalSectionTimeElapsed
-
The total elapsed time, in seconds, for the critical section of the current resharding operation.当前重新分片操作的关键部分的总运行时间(以秒为单位)。The critical section prevents new incoming writes to the collection currently being resharded. The time is set to 0 when a new resharding operation starts.关键部分防止对当前正在重新分片的集合进行新的传入写入。新的重新分片操作开始时,时间设置为0。Only present on a donor shard when a resharding operation is taking place.仅在进行重新分片操作时出现在施主分片上。New in version 5.0.5.0版新增。
$currentOp.donorState
-
The current state of a donor shard for the resharding operation. The state is set to用于重新分片操作的施主分片的当前状态。当新的重新分片操作开始时,状态设置为unused
when a new resharding operation starts.unused
。Only present on a donor shard when a resharding operation is taking place.仅在进行重新分片操作时出现在施主分片上。State状态Description描述unused
The resharding operation is about to start or recovering from a primary failover.重新分片操作即将启动或从主故障转移中恢复。preparing-to-donate
The donor shard is preparing to donate data to the recipient shards.捐赠方分片正准备将数据捐赠给接收方分片。donating-initial-data
The donor shard is donating data to the recipient shards.施主分片正在向接收者分片捐赠数据。donating-oplog-entries
The donor shard is donating oplog entries to the recipient shards.施主分片正在向接收者分片捐赠oplog条目。preparing-to-block-writes
The donor shard is about to prevent new incoming write operations to the collection that is being resharded.施主分片将阻止对正在重新分片的集合进行新的传入写入操作。error
An error occurred during the resharding operation.重新分片操作期间出错。blocking-writes
The donor shard is preventing new incoming write operations and the donor shard has notified all recipient shards that new incoming writes are prevented.施主分片正在阻止新的传入写入操作,并且施主分片已通知所有接收方分片阻止了新的传入写操作。done
The donor shard has dropped the old sharded collection and the resharding operation is complete.供体分片已经丢弃了旧的分片集合,并且重新分片操作已经完成。New in version 5.0.5.0版新增。
$currentOp.recipientState
-
The current state of a recipient shard for a resharding operation. The state is set to重新分片操作的接收方分片的当前状态。当新的重新分片操作开始时,状态设置为unused
when a new resharding operation starts.unused
。Only present on a donor shard when a resharding operation is taking place.仅在进行重新分片操作时出现在施主分片上。State状态Description描述unused
The resharding operation is about to start or recovering from a primary failover.重新分片操作即将启动或从主故障转移中恢复。awaiting-fetch-timestamp
The recipient shard is waiting for the donor shards to be prepared to donate their data.接收方分片正在等待捐赠者分片准备捐赠其数据。creating-collection
The recipient shard is creating the new sharded collection.接收方分片正在创建新的分片集合。cloning
The recipient shard is receiving data from the donor shards.接收方分片正在从施主分片接收数据。applying
The recipient shard is applying oplog entries to modify its copy of the data based on the new incoming writes from donor shards.接收方分片正在应用oplog条目,以基于来自施主分片的新传入写入来修改其数据副本。error
An error occurred during the resharding operation.重新分片操作期间出错。strict-consistency
The recipient shard has all data changes stored in a temporary collection.接收方分片将所有数据更改存储在临时集合中。done
The resharding operation is complete.重新分片操作已完成。New in version 5.0.5.0版新增。
$currentOp.coordinatorState
-
The state of the resharding coordinator for the current resharding operation.当前重新分片操作的重新分片协调器的状态。The resharding coordinator is an operation that runs on the config server primary.重新分片协调器是在config
服务器primary上运行的操作。The state is set to当新的重新分片操作开始时,状态设置为unused
when a new resharding operation starts.unused
。Only present on the coordinating config server.仅存在于协调配置服务器上。State状态Description描述unused
The resharding operation is about to start or recovering from a primary failover.重新分片操作即将启动或从主故障转移中恢复。initializing
The resharding coordinator has inserted the coordinator document into重新分片协调器已将协调员文档插入到config.reshardingOperations
and has added thereshardingFields
to theconfig.collections
entry for the original collection.config.reshardingOperations
中,并已将reshardingFields
添加到原始集合的config.collections
条目中。preparing-to-donate
The resharding coordinator重新分片协调器has created a已为临时重新分片集合创建了一个config.collections
entry for the temporary resharding collection.config.collections
条目。has inserted entries into已将条目插入到基于新分片键的范围的config.chunks
for ranges based on the new shard key.config.chunks
中。has inserted entries into已将条目插入到与新分片键关联的任何区域的config.tags
for any zones associated with the new shard key.config.tags
中。
The coordinator informs participant shards to begin the resharding operation.协调器通知参与者分片开始重新分片操作。The coordinator then waits until all donor shards have picked a然后,协调器等待,直到所有捐赠分片都选择了minFetchTimestamp
and are ready to donate.minFetchTimestamp
并准备好捐赠。cloning
The resharding coordinator informs donor shards to donate data to recipient shards.重新分片协调器通知捐赠者分片将数据捐赠给接受者分片。The coordinator waits for all recipients to finish cloning the data from the donor.协调器等待所有收件人完成对来自捐赠者的数据的克隆。applying
The resharding coordinator informs recipient shards to modify their copies of data based on new incoming writes from donor shards.重新分片协调器通知接收方分片根据来自施主分片的新传入写入修改其数据副本。The coordinator waits for all recipients to finish applying oplog entries.协调器等待所有收件人完成oplog项的应用。blocking-writes
The resharding coordinator informs donor shards to prevent new incoming write operations to the collection being resharded.重新分片协调器通知施主分片,以防止对正在重新分片的集合进行新的传入写入操作。The coordinator then waits for all recipients to have all data changes.然后,协调器等待所有收件人更改所有数据。aborting
An unrecoverable error occurred during the resharding operation or the在重新分片操作或运行abortReshardCollection
command (or thesh.abortReshardCollection()
method) was run.abortReshardCollection
命令(或sh.abortReshardCollection()
方法)期间发生了不可恢复的错误。committing
The resharding coordinator removes the重新分片协调器将删除临时重新分片集合的config.collections
entry for the temporary resharding collection.config.collections
条目。The coordinator then adds the然后,协调器将recipientFields
to the source collection's entry.recipientFields
添加到源集合的条目中。New in version 5.0.5.0版新增。
$currentOp.opStatus
-
The current state of a resharding operation.重新分片操作的当前状态。Only present if a resharding operation is taking place.只有在进行重新分片操作时才出现。Once the operation has completed, the operation is removed from一旦操作完成,该操作将从currentOp
output.currentOp
输出中删除。State状态Description描述actively running
The resharding operation is actively running.重新分片操作正在积极运行。success
The resharding operation has succeeded.重新分片操作已成功。failure
The resharding operation has failed.重新分片操作失败。canceled
The resharding operation was canceled.重新发分片操作已取消。New in version 5.0.5.0版新增。
$currentOp.collUuid
-
The UUID of the sampled collection.采样集合的UUID。This field only appears on documents related to query sampling.此字段仅出现在与查询采样相关的文档上。For details, see Sampled Queries.有关详细信息,请参阅采样查询。New in version 7.0.7.0版新增。
$currentOp.startTime
-
The time at which query sampling began.查询采样开始的时间。This field only appears on documents related to query sampling.此字段仅出现在与查询采样相关的文档上。For details, see Sampled Queries.有关详细信息,请参阅采样查询。New in version 7.0.7.0版新增。
$currentOp.samplesPerSecond
-
The maximum number of queries to sample per second.每秒要采样的最大查询数。Only reported when running仅在$currentOp
onmongos
.mongos
上运行$currentOp
时报告。This field only appears on documents related to query sampling.此字段仅出现在与查询采样相关的文档上。For details, see Sampled Queries.有关详细信息,请参阅采样查询。New in version 7.0.7.0版新增。
$currentOp.sampledReadsCount
-
The number of sampled read queries.采样的读取查询数。This field only appears on documents related to query sampling.此字段仅出现在与查询采样相关的文档上。For details, see Sampled Queries.有关详细信息,请参阅采样查询。New in version 7.0.7.0版新增。
$currentOp.sampledWritesCount
-
The number of sampled write queries.采样的写入查询数。This field only appears on documents related to query sampling.此字段仅出现在与查询采样相关的文档上。New in version 7.0.7.0版新增。
$currentOp.sampledReadsBytes
-
The size of the sampled read queries, in bytes.采样读取查询的大小,以字节为单位。On a replica set, this is reported on every在复制集上,每个mongod
.mongod
都会报告这种情况。On a sharded cluster, this only reported on在一个分片集群上,这只在mongod
with--shardsvr
.mongod
上报告了--shardsvr
。This field only appears on documents related to query sampling.此字段仅出现在与查询采样相关的文档上。For details, see Sampled Queries.有关详细信息,请参阅采样查询。New in version 7.0.7.0版新增。
$currentOp.sampledWritesBytes
-
The size of the sampled write queries, in bytes.采样的写入查询的大小,以字节为单位。On a replica set, this is reported on every在复制集上,每个mongod
.mongod
都会报告这种情况。On a sharded cluster, this only reported on在一个分片集群上,这只在mongod
with--shardsvr
.mongod
上报告了--shardsvr
。This field only appears on documents related to query sampling.此字段仅出现在与查询采样相关的文档上。For details, see Sampled Queries.有关详细信息,请参阅采样查询。New in version 7.0.7.0版新增。