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

MongoDBでコレクションの行数(ドキュメント数)をカウントする方法


MongoDBでコレクション内のドキュメント数(行数)を取得するには、count()メソッドを使用します。まず、サンプルとなるコレクションにドキュメントを挿入してみましょう。

1. コレクションへのドキュメント挿入

insertOne()メソッドを使って、複数のドキュメントを順番に登録します。

> db.demo664.insertOne({_id:1,ClientName:"Chris"});
{ "acknowledged" : true, "insertedId" : 1 }
> db.demo664.insertOne({_id:2,ClientName:"Bob"});
{ "acknowledged" : true, "insertedId" : 2 }
> db.demo664.insertOne({_id:3,ClientName:"Sam"});
{ "acknowledged" : true, "insertedId" : 3 }
> db.demo664.insertOne({_id:4,ClientName:"David"});
{ "acknowledged" : true, "insertedId" : 4 }

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

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

> db.demo664.find();

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

{ "_id" : 1, "ClientName" : "Chris" }
{ "_id" : 2, "ClientName" : "Bob" }
{ "_id" : 3, "ClientName" : "Sam" }
{ "_id" : 4, "ClientName" : "David" }

3. 行数(ドキュメント数)をカウントする

続いて、コレクション内の行数をカウントするクエリを見ていきましょう。count()メソッドの結果を変数に格納し、print()で出力しています。

> var numberOfRows=db.demo664.count();
> print ("Number Of Rows="+numberOfRows);

このクエリを実行すると、以下の出力が得られます。

Number Of Rows=4

このように、コレクション「demo664」には4件のドキュメントが登録されていることが確認できました。

補足:新しいバージョンでの推奨メソッド

MongoDBの比較的新しいバージョンでは、count()は非推奨(deprecated)となっています。代わりに、以下のメソッドの使用が推奨されます。

  • countDocuments():条件に一致するドキュメントの正確な件数を取得したい場合
  • estimatedDocumentCount():コレクション全体のおおよその件数を高速に取得したい場合
> db.demo664.countDocuments();
4

用途に応じてこれらのメソッドを使い分けることで、より効率的かつ正確にドキュメント数を取得できます。

  1. MongoDBコレクションにインデックスを作成する方法

    MongoDBコレクションにインデックスを作成する方法MongoDBでインデックスを作成するには、createIndex()メソッドを使用します。インデックスを適切に設定することで、クエリの検索速度を大幅に向上させることができます。まず、ドキュメントを含むコレクションに対してインデックスを作成してみましょう。以下の例では、details.idフィールドに対して昇順(1)のインデックスを作成しています。> db.demo702.createIndex({details.id:1});{   createdCollectionAutomatically : tr

  2. MySQLで各テーブルの行数を調べるには?information_schema.tablesの使い方

    MySQLでデータベース内の各テーブルのレコード数(行数)を調べたいときは、システムテーブル「information_schema.tables」を利用すると便利です。information_schemaにはテーブル名や行数といったメタデータが格納されており、SQLを1文実行するだけで全テーブルの行数を一覧表示できます。 行数を取得するための基本構文 SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = yourDatabaseName; table_name … テーブルの名