本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
$currentOp
$currentOp聚合阶段返回有关数据库中当前正在运行的操作的信息。此阶段对于监控聚合管道中的活动查询和操作非常有用。
参数
-
allUsers(可选):如果设置为true,则返回所有用户的操作。默认值为 false。
-
idleConnections(可选):设置为时true,包括空闲连接。默认值为 false。
-
idleCursors(可选):如果设置为true,则包含有关空闲光标的信息。默认值为 false。
-
idleSessions(可选):如果设置为true,则包含有关空闲会话的信息。默认值为 true。
-
localOps(可选):设置为时true,包括本地操作。默认值为 false。
示例(MongoDB 外壳)
以下示例演示如何使用$currentOp聚合阶段检索有关活动读取操作的信息。
查询示例
db.aggregate([
{ $currentOp: { allUsers: true, idleConnections: false } },
{ $match: { op: "query" } }
])
输出
[
{
"opid": "12345",
"active": true,
"op": "query",
"ns": "test.users",
"secs_running": 2
}
]
代码示例
要查看使用该$currentOp命令的代码示例,请选择要使用的语言的选项卡:
- Node.js
-
const { MongoClient } = require('mongodb');
async function example() {
const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
const db = client.db('admin');
const result = await db.aggregate([
{ $currentOp: { allUsers: true, idleConnections: false } },
{ $match: { op: "query" } }
]).toArray();
console.log(result);
await client.close();
}
example();
- Python
-
from pymongo import MongoClient
def example():
client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
db = client['admin']
result = list(db.aggregate([
{ '$currentOp': { 'allUsers': True, 'idleConnections': False } },
{ '$match': { 'op': 'query' } }
]))
print(result)
client.close()
example()