cursor.limit()
定義
cursor.limit()
重要
mongosh メソッド
このページでは、
mongosh
メソッドが文書化されます。これは Node.js などの言語固有のドライバーのドキュメントではありません。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
カーソルで返されるドキュメントの最大数を指定するには、カーソルで
limit()
メソッドを使用します。limit()
は、SQL データベースのLIMIT
ステートメントに類似しています。注意
データベースからドキュメントを取得する前に、カーソルに
limit()
を適用する必要があります。パフォーマンスを最大化し、MongoDB が処理に必要以上の結果を返すのを防ぐには、
limit()
を使用します。limit()
メソッドのプロトタイプ形式は次のとおりです。db.collection.find(<query>).limit(<number>)
動作
サポートされている値
limit()
の動作は、- 2 31未満の値および2 31 より大きい値の場合、未定義です。
ゼロ値
負の値
負の制限は正の制限と似ていますが、単一のバッチの結果が返された後にカーソルを閉じます。 そのため、負の制限では、制限された結果セットが 1 つのバッチに収まらない場合、受信されるドキュメントの数は指定された制限よりも少なくなります。 負の制限を渡すことにより、クライアントからサーバーに、 getMore
経由で後続のバッチ要求が実行されないことが伝えられます。
を で使用するlimit()
sort()
limit()
をsort()
と併用する場合、結果をlimit()
に渡す前に、一意の値を含むフィールドを少なくとも 1 つ並べ替えに含めるようにしてください。
重複する値を含むフィールドをソートすると、特にコレクションが書込み (write) をアクティブに受信している場合、複数回実行時に重複フィールドに対して異なるソート順序が返されることがあります。
並べ替えの整合性を保証する最も簡単な方法は、並べ替えクエリに_id
フィールドを含めることです。
詳細については、sort() メソッドによるコンシステントソートを参照してください。
を で使用するlimit()
skip()
skip()
とlimit()
を連鎖する場合、メソッド連鎖の順序は結果に影響しません。 サーバーは、ドキュメントを返す数に制限を適用する前に、常にソート順のスキップ操作を適用します。
次のコード例は、skip()
とlimit()
の異なるチェーン順序を示しており、これらは常に同じデータセットに対して同じクエリ結果を生成します。
db.myColl.find().sort({_id: 1}).skip(3).limit(6); db.myColl.find().sort({_id: 1}).limit(6).skip(3);