tryNext() (次のドキュメントの試行取得)
最終更新:2026-10-09
tryNext() (次のドキュメントの試行取得)
tryNext() はカーソルの次のドキュメントの取得を試み、終端では投げる代わりに null を返します: `const doc = db.users.find().tryNext()`。使い果たしでエラーになる next() と異なり、tryNext() は反復コードを安全かつ簡潔に保ちます。条件付きループやフォールトトレラントな読み取りに最適です。
| カテゴリ | カーソル |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
db.<collection>.find(<filter>).tryNext()
戻り値:次のドキュメント。カーソルが尽きている場合は null。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// tryNext: hasNext なしの安全な反復
const cursor = db.users.find()
let doc
while ((doc = cursor.tryNext()) !== null) {
print(doc.name)
}
出力:
Alice
Bob
Cara
📌 注意事項
- 終端では投げず null を返す
- hasNext()+next() の組み合わせを置き換えられる
- ループを break すればいつでも停止できる
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
QtryNext と next の違いは?
A終端で next() はエラーを投げ、tryNext() は null を返します。後者の方がより安全に反復できます。
QtryNext は hasNext を置き換えられますか?
A置き換えられます。while ((doc = cursor.tryNext()) !== null) パターンは hasNext() なしで安全に反復します。
QtryNext が null を返すのは終端を意味しますか?
Aはい。null はカーソルを使い果たしたことを示し、ループは停止すべきです。