limit() (結果件数の制限)
最終更新:2026-10-09
limit() (結果件数の制限)
limit() は find() が返すドキュメント数を上限で制限します: `db.users.find({ age: { $gt: 20 } }).limit(5)`。カーソルにチェーンでき、ページングや top-N クエリの標準ツールです。limit(0) は制限なしを意味します。他のカーソルメソッドと自由に組み合わせられ、ページングには skip() と一緒に使います。
| カテゴリ | カーソル |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
db.<collection>.find(<filter>).limit(<count>)
⚙️ パラメータ
| 数 | 返すドキュメントの最大数。0 は無制限を意味します。 |
|---|
戻り値:limit を適用したカーソル(チェーン可能)。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// limit: 成人の最初の3人だけを取得する
const top3 = db.users.find({ age: { $gte: 18 } }).limit(3).toArray()
top3
出力:
[
{ _id: ObjectId('64c8a1b20000000000000001'), name: 'Alice', age: 21 },
{ _id: ObjectId('64c8a1b20000000000000002'), name: 'Bob', age: 25 }
]
📌 注意事項
- limit() はサーバー側で切り詰める。skip() と組み合わせても、グローバルに一貫したページングにはならない
- limit(0) は無制限を意味する
- 予測可能性には sort と組み合わせる。例: .sort({age: 1}).limit(5)
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Qlimit と skip はページングでどう組み合わせますか?
A典型的なパターンは .skip(pageSize*page).limit(pageSize)。例: 10件×2ページ目は .skip(10).limit(10)
Qlimit(0) は何を意味しますか?
Alimit(0) は制限を適用しません。省略と同じです。
Qlimit の後にカーソルメソッドをチェーンできますか?
Aできます。limit() はカーソルを返すので、sort()、skip()、toArray() などを続けられます。