cursor.tailable()
定義
cursor.tailable()
重要
mongosh メソッド
このページでは、
mongosh
メソッドが文書化されます。これは Node.js などの言語固有のドライバーのドキュメントではありません。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
クライアントがすべての結果を使い果たした場合でも開いたままに、カーソルを追尾可能としてマークします。
Capped コレクションに対してのみ使用します。 Capped コレクション以外のコレクションに対して
~cursor.tailable()
を使用すると、エラーが返されます。cursor.tailable()
は、次の構文を使用します。cursor.tailable( { awaitData : <boolean> } ) ~cursor.tailable()
には、次のパラメーターがあります。Parameterタイプ説明awaitData
ブール値任意。
DBQuery.Option.tailable
と併用します。 使用可能なデータがない場合にクエリ スレッドをブロックし、すぐにデータを返さずに設定された時間データを待機するようにカーソルを設定します。 カーソルは、タイムアウトが経過した場合にのみデータを返しません。デフォルトでは、カーソルを作成したコマンドに
maxTimeMS
が設定されている場合、awaitData
のタイムアウトは残りの時間になります。 それ以外の場合、デフォルトのタイムアウトは1000ミリ秒です。awaitData
が有効になっているカーソルでgetMore
を実行するときにタイムアウトを設定できます。デフォルトは
false
です。次の値を返します。 ~cursor.tailable()
がアタッチされているカーソル。
動作
追尾可能 (tailable) カーソルは、 Cappedコレクションに対してコレクションスキャンを実行します。 コレクションの末尾に到達しても開いたままになります。 アプリケーションは、新しいデータがコレクションに挿入されたら、追尾可能 (tailable) カーソルを反復処理し続けることができます。
awaitData
がtrue
の場合、カーソルが Capped コレクションの末尾に到達すると、 mongod
はタイムアウト間隔だけクエリ スレッドをブロックし、新しいデータの受信を待機します。 新しいデータがCappedコレクションに挿入されると、 mongod
はブロックされたスレッドを起動して次のバッチをクライアントに返すようにシグナルを送信します。