next() (次のドキュメントの取得)
最終更新:2026-10-09
next() (次のドキュメントの取得)
next() はカーソルの次のドキュメントを返し、カーソルを進めます: `db.users.find().next()`。カーソルを使い果たした後に呼ぶとエラーを投げるため、hasNext() と組み合わせます: `while (cursor.hasNext()) { const doc = cursor.next() }`。手動カーソル反復の低レベルプリミティブです。
| カテゴリ | カーソル |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
db.<collection>.find(<filter>).next()
戻り値:次のドキュメント。カーソルが尽きている場合は例外を送出。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// next: 最初の3ドキュメントを手動で取得する
const cursor = db.users.find()
for (let i = 0; i < 3; i++) {
print(cursor.next().name)
}
出力:
Alice
Bob
Cara
📌 注意事項
- カーソルを使い果たすと next() はエラーを投げる
- 安全な反復には hasNext() と組み合わせる
- 前方向のみ。後ろに戻れない
🏷️ 関連タグ
💡 関連ケース
Express/Mongoose統合:アプリケーションアーキテクチャ
Mongooseスキーマ設計と埋め込み vs 参照
Mongooseバリデーションとミドルウェア
RESTful API設計:CRUD操作とバリデーション
📚 関連チュートリアル
❓ よくある質問
Qnext() がカーソルの終端に達するとどうなりますか?
Aエラーを投げます。安全なパターンは next() を呼ぶ前に hasNext() で確認することです。
Qnext と tryNext の違いは何ですか?
Anext() は終端でエラーを投げます。tryNext() は代わりに null を返すため、フォールトトレラントなループに適しています。
Qnext() で前のドキュメントに戻れますか?
A戻れません。カーソルは前方向にしか進みません。再訪問するには結果を配列に保存してください。