本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
$currentOp
$currentOp 彙總階段會傳回資料庫中目前執行中操作的相關資訊。此階段適用於監控彙總管道中的作用中查詢和操作。
參數
-
allUsers (選用):設為 時true, 會傳回所有使用者的操作。預設值為 false。
-
idleConnections (選用):設為 時true, 包含閒置連線。預設值為 false。
-
idleCursors (選用):設為 時true,包含閒置游標的相關資訊。預設值為 false。
-
idleSessions (選用):設為 時true, 包含閒置工作階段的相關資訊。預設值為 true。
-
localOps (選用):設為 時true, 包含本機操作。預設值為 false。
範例 (MongoDB Shell)
下列範例示範如何使用$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()