Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

$limit(集計)

項目一覧

  • 定義
  • 互換性
  • 構文
  • 動作
$limit

パイプライン の次のステージに渡されるドキュメントの数を制限します。

次の環境でホストされる配置には $limit を使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

$limitステージのプロトタイプ形式は次のとおりです。

{ $limit: <positive 64-bit integer> }

$limit 渡すドキュメントの最大数を指定する正の整数を取ります。

注意

MongoDB 5.0 以降では、$limit パイプライン集計に 64 ビットの整数制限があります。この制限を超える値がパイプラインに渡されると、無効な引数エラーが返されます。

$limit ステージを次のいずれかで使用する場合、

結果を $limit ステージに渡す前に、一意の値を含むフィールドを 1 つ以上ソートの中に含めるようにします。

重複する値を含むフィールドをソートすると、特にコレクションが書込み (write) をアクティブに受信している場合、複数回実行時に重複フィールドに対して異なるソート順序が返されることがあります。

並べ替えの整合性を保証する最も簡単な方法は、並べ替えクエリに_idフィールドを含めることです。

それぞれの詳細については、以下を参照してください。

次の例で考えてみます。

db.article.aggregate([
{ $limit : 5 }
]);

この操作は、パイプラインによって渡された最初の 5 個のドキュメントのみを返します。$limit は、渡すドキュメントの内容には影響しません。

注意

$sort$limitに先行し、途中にドキュメント数を変更するステージがない場合、オプティマイザは$limit$sortに統合することができます。 これにより、 $sort操作の進行中に上位 のn結果のみが保持できます。ここでは、 nは指定された制限であり、MongoDB はメモリにn個の項目のみを保存するだけで済むようになります。 この最適化は、 allowDiskUsetrueで、かつn項目が集計メモリの制限 を超えている場合でも、引き続き適用されます。

Tip

以下も参照してください。

戻る

$indexStats