Docs Menu
Docs Home
/ / /
Node.js ドライバー
/ /

コマンド監視

項目一覧

  • Overview
  • イベント サブスクリプションの例
  • イベントの説明
  • イベント ドキュメントの例

このガイドでは、ドライバーによって MongoDB 配置に送信されたコマンドの成功または失敗を監視する方法を説明します。

次のセクションでは、アプリケーションでコマンドのステータスを記録し、これらのイベントで提供される情報を調べる方法を示します。

アプリケーションでサブスクライブすることで、ドライバーを使用して 1 つ以上のコマンド モニタリング イベントにアクセスできます。 次の例は、レプリカセットへの接続と、MongoDB 配置によって作成されたコマンド監視イベントの 1 つへのサブスクライブを示しています。

/* Subscribe to an event */
const { MongoClient } = require("mongodb");
// Replace the following with your MongoDB deployment's connection string
const uri = "mongodb+srv://<clusterUrl>/?replicaSet=rs&writeConcern=majority";
const client = new MongoClient(uri, { monitorCommands:true });
// Replace <event name> with the name of the event you are subscribing to
const eventName = "<event name>";
// Subscribe to a specified event and print a message when the event is received
client.on(eventName, event => console.log(event));
async function run() {
try {
// Establish and verify connection to the "admin" database
await client.db("admin").command({ ping: 1 });
console.log("Connected successfully");
} finally {
// Close the database connection on completion or error
await client.close();
}
}
run().catch(console.dir);

注意

コマンド モニタリングはデフォルトで無効になっています。 コマンドモニタリングを有効にするには、 monitorCommandsオプションをtrueとしてMongoClientコンストラクターに渡します。

次のコマンド モニタリング イベントのいずれかにサブスクライブできます。

イベント名
説明
commandStarted
コマンドが開始されたときに作成されます。
commandSucceeded
コマンドが成功したときに作成されます。
commandFailed
コマンドが失敗した場合に作成されます。

次のセクションでは、コマンド モニタリング イベントの各タイプのサンプル出力を示します。

CommandStartedEvent {
requestId: 1534,
databaseName: "app",
commandName: "find",
address: 'localhost:27017',
connectionId: 812613,
command: {
find: { firstName: "Jane", lastName: "Doe" }
}
}
CommandSucceededEvent {
requestId: 1534,
commandName: "find",
address: 'localhost:27017',
connectionId: 812613,
duration: 15,
reply: {
cursor: {
firstBatch: [
{
_id: ObjectId("5e8e2ca217b5324fa9847435"),
firstName: "Jane",
lastName: "Doe"
}
],
_id: 0,
ns: "app.users"
},
ok: 1,
operationTime: 1586380205
}
}
CommandFailedEvent {
requestId: 1534,
commandName: "find",
address: 'localhost:27017',
connectionId: 812613,
failure: Error("something failed"),
duration: 11
}

戻る

クラスター