Docs 菜单

Docs 主页开发应用程序MongoDB Manual

db.currentOp()

在此页面上

  • 定义
  • 行为
  • 访问控制
  • 举例
  • 输出示例
  • 特定输出示例
  • 输出字段
db.currentOp()

返回一个文档,其中包含有关数据库实例正在进行的操作的信息。 db.currentOp()方法封装数据库命令currentOp

使用$currentOp聚合阶段而不是currentOp命令及其mongosh辅助方法db.currentOp()

注意

从 MongoDB 5开始。 0 ,即$currentOp聚合阶段,在使用 mongosh 运行辅助方法db.currentOp()时使用

鉴于此,在5中。 0版本的 Shell 和使用 mongosh 时, db.currentOp()结果集不受针对先前旧mongo版本文档的16 MB BSON 文档返回大小限制的约束。

db.currentOp() 采用以下形式:

db.currentOp(<operations>)

db.currentOp()可以采用以下可选参数:

范围
类型
说明
操作
布尔或文档

可选。指定要报告的操作。可以传递布尔值或文档:

  • 指定 true 以包括针对空闲连接的操作和系统操作。

  • 指定具有查询条件的文档,以仅报告符合条件的操作。有关详细信息,请参阅行为

db.currentOp() 可以接受筛选器文档或布尔参数。

如果将筛选器文档传递给db.currentOp() ,则输出仅返回与筛选器匹配的当前操作的信息。筛选器文档可以包含:

字段
说明
"$ownOps"

布尔值。如果设为 true,则只返回有关当前用户的操作的信息。

mongod 实例上,用户可以随时运行 db.currentOp( { "$ownOps": true } ) 以查看自己的操作。

"$all"

布尔值。如果设置为 true,则返回所有操作的信息,包括对空闲连接的操作和系统操作。

如果文档包含"$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.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()