MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBのAggregateでレコード数を制限する方法($limitの使い方)

MongoDBのAggregateでレコード数を制限する方法

MongoDBで取得するレコード数を制限したい場合は、アグリゲーションパイプラインの $limit ステージを使用します。$limit を使うことで、集計結果として返されるドキュメントの件数を自由に絞り込むことができます。ここでは、サンプルコレクションを作成し、実際に $limit でレコード数を制限する手順を順番に解説します。

1. サンプルコレクションの作成

まず、insertOne() メソッドを使って「demo240」というコレクションにドキュメントを登録します。

> db.demo240.insertOne({"StudentName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e441d969af932883c61ea3c")
}
> db.demo240.insertOne({"StudentName":"Bob"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e441d9a9af932883c61ea3d")
}
> db.demo240.insertOne({"StudentName":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e441d9d9af932883c61ea3e")
}
> db.demo240.insertOne({"StudentName":"Mike"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e441da19af932883c61ea3f")
}

2. 登録されたドキュメントの確認

find() メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。

> db.demo240.find();

上記のクエリを実行すると、次のような出力が得られます。

{ "_id" : ObjectId("5e441d969af932883c61ea3c"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5e441d9a9af932883c61ea3d"), "StudentName" : "Bob" }
{ "_id" : ObjectId("5e441d9d9af932883c61ea3e"), "StudentName" : "David" }
{ "_id" : ObjectId("5e441da19af932883c61ea3f"), "StudentName" : "Mike" }

現時点では4件のドキュメントが登録されていることが確認できます。

3. $limitでレコード数を制限する

続いて、aggregate() のパイプライン内で $limit を指定し、レコード数を3件に制限するクエリを見てみましょう。

> db.demo240.aggregate( { $limit : 3 });

このクエリを実行すると、先頭の3件のドキュメントのみが出力されます。

{ "_id" : ObjectId("5e441d969af932883c61ea3c"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5e441d9a9af932883c61ea3d"), "StudentName" : "Bob" }
{ "_id" : ObjectId("5e441d9d9af932883c61ea3e"), "StudentName" : "David" }

まとめ

$limit ステージを使えば、アグリゲーションの結果として返されるドキュメント数を簡単に制御できます。大量のデータから必要な件数だけを取得したい場合に非常に便利です。なお、パフォーマンスを考慮する場合は、$limit をパイプラインのできるだけ後ろの方($match や $sort の後など)に配置することで、処理対象のドキュメント数を早めに減らすことができます。

  1. MongoDBでフィールドの戻り値を制限するクエリの書き方($slice演算子の使い方)

    MongoDBでフィールドの戻り値を制限するクエリの書き方MongoDBで配列フィールドの要素数を制限して取得したい場合は、$slice演算子を使用します。この演算子を活用することで、クエリ結果として返す配列の要素数を柔軟にコントロールできます。ここでは、具体的な手順をサンプルコードとともに解説します。1. コレクションとドキュメントの作成まず、insertOne()メソッドを使ってドキュメントを挿入し、コレクションを作成します。> db.demo594.insertOne(...    {...    &n

  2. JavaでMongoDBコレクションからデータを取得する際にレコード数を制限する方法

    MongoDBのコレクションからレコードを取得する際、limit()メソッドを使用することで、結果として返されるレコードの件数を制限できます。大量のデータが格納されたコレクションから必要な分だけ効率よく取り出したい場合に非常に便利な機能です。 limit()メソッドの基本構文 db.COLLECTION_NAME.find().limit(取得したいレコード数) シェル上では上記のように記述します。JavaのMongoDBドライバ(ライブラリ)にも同名のlimit()メソッドが用意されており、find()メソッドの実行結果に対して、必要なレコード数を表す整数値を引数として渡して呼び出すことで、