tailable() (テイル可能カーソル)

最終更新:2026-10-09

tailable() (テイル可能カーソル)

tailable() はカーソルをテイル可能としてマークします。例: `db.logs.find().tailable()`。データが尽きたときに閉じるのではなく、テイル可能カーソルは新しいドキュメントを待ち続けます。ログの末尾追跡や、Change Streams が登場する前の挿入監視に使われました。キャップ付きコレクションが必要で、レプリカセットでは awaitData オプションとよく組み合わせます。

カテゴリカーソル
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

db.<collection>.find(<filter>).tailable({ awaitData: <bool> })

⚙️ パラメータ

awaitData任意。true は即座に返す代わりに新しいデータを待ちます。

戻り値:tailable を指定したカーソル(チェーン可能)。

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// tailable: 新しいログエントリを読み続ける
const cursor = db.logs.find()
  .tailable({ awaitData: true })
while (cursor.hasNext()) {
  print(cursor.next().msg)
}

出力:

login ok
order created
payment received

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Qテイル可能カーソルは何のために使いますか?
Aキャップ付きコレクションから新しいデータを読み続けます。リアルタイムのログ末尾追跡やモニタリングストリームで、末尾でも閉じません。
Qtailable の制限は?
Aキャップ付きコレクションのみです。新規プロジェクトでは watch() の Change Streams を使うべきです。より豊富で、通常のコレクションでも動作します。
Qtailable と watch の違いは?
Atailable() はキャップ付きコレクションの新しいデータをポーリングします。watch() は oplog の Change Stream を使い、通常のコレクションとより多くのイベントタイプをサポートします。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%