killCursors
バージョン 3.2 で追加。
定義
killCursors
コレクションの指定されたカーソルを強制終了します。 MongoDB ドライバーは、クライアント側のカーソル実装の一部として
killCursors
コマンドを使用します。警告
アプリケーションは通常、
killCursors
コマンドを直接実行 しないでください 。代わりに、ドライバーにカーソル管理を自動的に処理させます。killCursors
コマンドは、強制終了するカーソルが含まれているコレクションのデータベースに対して実行する必要があります。killCursors を実行するには、
db.runCommand( { <command> } )
メソッドを使用します。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.runCommand( { "killCursors": <collection>, "cursors": [ <cursor id1>, ... ], comment: <any> } )
コマンドフィールド
このコマンドは、次のフィールドを使用します。
フィールド | タイプ | 説明 |
---|---|---|
| string | コレクションの名前。 |
| 配列 | 強制終了するカーソルの ID。 |
| any | 任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。
コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。 |
必要なアクセス権
独自のカーソルを強制終了
ユーザーは、killCursors
特権を持っているかどうかに関係なく、いつでも自分のカーソルを強制終了できます。カーソルは、カーソルの作成時にユーザーに関連付けられます。
任意のカーソルを強制終了
ユーザーにkillAnyCursor
特権がある場合は、任意のユーザーが作成したカーソルを強制終了できます。
killCursors
およびトランザクション
killCursors
コマンドをトランザクションの最初の操作に指定することはできません。
さらに、トランザクション内で killCursors
コマンドを実行すると、サーバーは指定されたカーソルを直ちに停止します。トランザクションがコミットされるのを待ちません。
例
test.restaurants
コレクションに対する次のfind
操作を検討します。
use test db.runCommand( { find: "restaurants", filter: { stars: 5 }, projection: { name: 1, rating: 1, address: 1 }, sort: { name: 1 }, batchSize: 5 } )
により、次の結果が返されます。
{ "waitedMS" : NumberLong(0), "cursor" : { "firstBatch" : [ { "_id" : ObjectId("57506d63f578028074723dfd"), "name" : "Cakes and more" }, { "_id" : ObjectId("57506d63f578028074723e0b"), "name" : "Pies and things" }, { "_id" : ObjectId("57506d63f578028074723e1d"), "name" : "Ice Cream Parlour" }, { "_id" : ObjectId("57506d63f578028074723e65"), "name" : "Cream Puffs" }, { "_id" : ObjectId("57506d63f578028074723e66"), "name" : "Cakes and Rolls" } ], "id" : NumberLong("18314637080"), "ns" : "test.restaurants" }, "ok" : 1 }
このカーソルを強制終了するには、 killCursors
コマンドを使用します。
use test db.runCommand( { killCursors: "restaurants", cursors: [ NumberLong("18314637080") ] } )
killCursors
は、次の操作の詳細を返します。
{ "cursorsKilled" : [ NumberLong("18314637080") ], "cursorsNotFound" : [ ], "cursorsAlive" : [ ], "cursorsUnknown" : [ ], "ok" : 1 }