Docs Menu
Docs Home
/
データベース マニュアル
/ /

Cursors

カーソルは、クエリの結果へのポインターです。カーソルを使用すると、一度に 1バッチするでデータベースの結果を反復処理できます。

mongosh または ドライバー を使用して find() メソッドと aggregate() メソッドを実行すると、結果のバッチを含むカーソルが返されます。結果のドキュメントには、カーソルを手動で反復処理するか、toArray() メソッドを使用してアクセスできます。詳細については、mongosh でのカーソルの反復」を参照してください。

Cappedコレクションにアクセスしている場合は、コレクションに挿入されるときに新しいドキュメントを検索する追尾可能 (tailable) カーソルを使用できます。詳細については、「 追尾可能 (tailable) カーソル 」を参照してください。

クライアントセッション内で作成されたカーソルは、次のシナリオでは閉じられます。

  • クライアントはカーソルを使い果たします。

  • ユーザーがカーソルを手動で閉じます。

  • ユーザーがセッションを手動で終了した。

  • セッションがタイムアウトした。

cursorTimeoutMillisパラメータはアイドル10 カーソルのタイムアウトを指定し、デフォルト値は 分です。 MongoDB は、このしきい値の経過後に、セッション外で作成されたアイドル カーソルをタイムアウトします。 MongoDB は、カーソルが新しいバッチするを返すたびにカーソルのタイムアウトを延長します。カーソルを手動で閉じるには、killCursors を使用します。

サーバーセッション タイムアウトは localLogicalSessionTimeoutMinutes パラメータによって指定され、デフォルト値は 30 分です。30 分を超えてセッションを延長するには、refreshSessions を使用します。セッションを手動で終了するには、killSessions を使用します。

カーソルがセッション外で開かれている場合、 MongoDBドライバーと mongosh は暗黙的なセッションを作成し、それを操作に関連付けます。

カーソルによってドキュメントが返されると、読み取り保証 (read concern)のレベルによっては、バックグラウンドで他の操作が実行され、結果に影響が出る可能性があります。 詳細については、「 読み取り分離、整合性、最新性について 」を参照してください。

find または aggregate 操作を実行すると、データベースはバッチするを満たすのに十分なドキュメントを見つけるまでクエリを実行します。バッチするが入力されると、クエリは一時停止します。サーバー上で一時停止されたクエリは カーソル と呼ばれ、一時停止されたクエリに関連付けられたID はカーソルIDと呼ばれます。

データベースは、結果のバッチするとカーソルID をクライアントに返します。MongoDBドライバーと mongosh はこのデータをクライアント側のカーソルインスタンスに保存します。バッチするの末尾に到達したときに一致するドキュメントがさらにある場合、クライアント側のカーソルは getMore を使用してサーバーから自動的に次のバッチするを取得します。現在のバッチするに残っている結果数を確認するには、cursor.objsLeftInBatch() を使用します。現在のバッチするまたはサーバー上に結果が残っているかどうかを確認するには、cursor.hasNext() を使用します。

カーソル は結果をバッチで返します。バッチする内のデータ量は、最大BSONドキュメントサイズ(16 MiB)より小さくなければなりません。バッチするで許可されるドキュメントの最大数を指定するには、cursor.batchSize() を参照してください。デフォルトでは、find() 操作と aggregate() 操作のバッチするサイズは 101 です。結果のカーソルに対して発行される後続の getMore 操作には、デフォルトのバッチするサイズがないため、16 メビバイトのメッセージ サイズによってのみ制限されます。

インデックスなしでソート操作を行うクエリでは、サーバーは結果を返す前にすべてのドキュメントをメモリにロードしてソートを実行する必要があります。

db.serverStatus() メソッドは、metricsフィールドを含むドキュメントを返します。metricsフィールドには、詳細なカーソル情報を含む metrics.cursorフィールドが含まれています。詳しくは metrics.cursor を参照してください。

戻る

クエリプラン

項目一覧