Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

killCursors

項目一覧

  • 定義
  • 互換性
  • 構文
  • コマンドフィールド
  • 必要なアクセス権
  • killCursors およびトランザクション
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>
}
)

このコマンドは、次のフィールドを使用します。

フィールド
タイプ
説明

killCursors

string

コレクションの名前。

cursors

配列

強制終了するカーソルの ID。

comment

any

任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。

コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。

ユーザーは、killCursors 特権を持っているかどうかに関係なく、いつでも自分のカーソルを強制終了できます。カーソルは、カーソルの作成時にユーザーに関連付けられます。

ユーザーにkillAnyCursor 特権がある場合は、任意のユーザーが作成したカーソルを強制終了できます。

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
}

戻る

getParameter