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

特定のフィールドの値に基づいて配列内のドキュメントをカウントするにはどうすればよいですか?


このような一致とカウントには、MongoDBで$matchを使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo726.insertOne(
...    {
...       id:101,
...       "details": [
...          {
...             Name:"Chris"
...
...          },
...          {
...             Name:"Chris"
...
...          },
...          {
...             Name:"Bob"
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eab318643417811278f5894")
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo726.find();

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5eab318643417811278f5894"), "id" : 101, "details" : [ { "Name" : "Chris" }, { "Name" : "Chris" }, { "Name" : "Bob" } ] }

以下は、MongoDBの特定のフィールドの値に基づいて配列内のドキュメントをカウントするためのクエリです-

> db.demo726.aggregate([
...
...    { $unwind: '$details' },
...
...    { $match: { 'details.Name': "Chris"} },
...       { $group: {
...          _id: "$Name",
...          Total_Value: { $sum: 1 }
...       }
...    }
... ]);

これにより、次の出力が生成されます-

{ "_id" : null, "Total_Value" : 2 }

  1. MySQLで列の特定の値のカウントを取得するにはどうすればよいですか?

    最初にテーブルを作成しましょう- mysql> create table DemoTable    (       Id int,       Name varchar(100)    ); Query OK, 0 rows affected (1.40 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(100,'John'); Query OK, 1 row aff

  2. MySQLで特定の値を持つ列の数を数える方法は?

    以下は構文です- select sum(yourColumnName1+yourColumnName2+yourColumnName3...N) as `anyAliasName1`, sum(yourColumnName1 and yourColumnName2 and yourColumnName3….N) as anyAliasName from yourTableName; テーブルを作成しましょう- mysql> create table demo36 −> ( −> id int not null auto_incremen