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