MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBプロファイラー出力の「command」操作とは?仕組みとcountコマンドの実例を解説

MongoDBにおける「command」操作とは

MongoDBのプロファイラー出力を解析していると、opフィールドに「command」という操作種別が表示されることがあります。これは特定のコマンド実行を指しており、MongoDBでは以下の操作が「command」操作として分類されます。

1. count
2. findAndModify
3. aggregate

つまり、ドキュメント数のカウント(count)、ドキュメントの検索と更新を同時に行う(findAndModify)、集計パイプライン処理(aggregate)などは、通常のクエリ(query)ではなく「コマンド」として記録されるのです。

ここからは、代表的な例としてcountの動作を実際に確認していきましょう。

サンプルコレクションの作成

まず、ドキュメントを含むコレクションを作成します。insertOne()メソッドを使って、3件のドキュメントを順に挿入します。

> db.demo443.insertOne({"Name":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e78d281bbc41e36cc3caeb9")
}
> db.demo443.insertOne({"Name":"Bob"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e78d285bbc41e36cc3caeba")
}
> db.demo443.insertOne({"Name":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e78d288bbc41e36cc3caebb")
}

各挿入操作に対して、acknowledged: trueと挿入されたドキュメントのObjectIdが返されていることがわかります。

find()メソッドで全ドキュメントを表示

次に、find()メソッドを使用して、コレクション内のすべてのドキュメントを表示します。

> db.demo443.find();

このクエリを実行すると、以下のような出力が得られます。

{ "_id" : ObjectId("5e78d281bbc41e36cc3caeb9"), "Name" : "Chris" }
{ "_id" : ObjectId("5e78d285bbc41e36cc3caeba"), "Name" : "Bob" }
{ "_id" : ObjectId("5e78d288bbc41e36cc3caebb"), "Name" : "David" }

先ほど挿入した3件のドキュメントが正しく登録されていることが確認できました。

countコマンドの実行例

それでは、MongoDBにおけるcountの実行例を見てみましょう。コレクション内のドキュメント総数を取得するには、count()メソッドを呼び出します。

> db.demo443.count();

実行結果は以下の通りです。

3

コレクションに存在するドキュメント数「3」が返されました。

まとめ

MongoDBのプロファイラーにおいて「command」として分類されるのは、count・findAndModify・aggregateの3つの操作です。プロファイラーログを読み解く際に、これらが通常のfindクエリとは異なる種別として記録される点を理解しておくと、パフォーマンス分析やスロークエリの調査がよりスムーズになります。

  1. コマンドプロンプトとPowerShellの違いとは?特徴と使い分けを徹底解説

    Windowsユーザーの日常的な作業では、コマンドラインインターフェースを意識する場面は多くありません。しかし、より高度なタスクを行いたい場合、コマンドラインはGUIよりもはるかに柔軟性と制御性を提供してくれます。実際、それこそがWindowsに「コマンドプロンプト」と「PowerShell」という2つのコマンドライン環境が存在する理由です。 どちらもコマンドラインインターフェースであるため、一見するとよく似ていますが、両者には大きな違いがあります。この記事では、それぞれの役割と特徴を解説し、PowerShellがコマンドプロンプトとどう違うのかを詳しく見ていきます。 コマンドプロンプトとは

  2. 1つのコマンドでMongoDBを安全に停止する方法|shutdownServerの使い方を解説

    単一コマンドでMongoDBを停止する方法 MongoDBサーバーを1つのコマンドで停止したい場合は、mongoシェルの--evalオプションを使い、adminデータベースに対してshutdownServer()を実行するのが最も簡単な方法です。 使用するコマンドの基本構文は以下の通りです。 mongo --eval db.getSiblingDB(admin).shutdownServer() getSiblingDB(admin)でadminデータベースに切り替えてからshutdownServer()を呼び出すことで、接続中のMongoDBサーバーをシャットダウンできます。 実行手順 そ