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

カウントを表示する新しいフィールドで結果を表示するためのMongoDBの「構造化された」グループ化クエリ


このためには、MongoDB INaggregate()で$groupを使用します。 $ groupは、指定された_id式によって入力ドキュメントをグループ化し、個別のグループ化ごとにドキュメントを出力します。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.demo534.insertOne({_id:10,"ProductId":100,"ProductName":"Product-1"});
{ "acknowledged" : true, "insertedId" : 10 }
> db.demo534.insertOne({_id:11,"ProductId":100,"ProductName":"Product-2"});
{ "acknowledged" : true, "insertedId" : 11 }
> db.demo534.insertOne({_id:12,"ProductId":101,"ProductName":"Product-1"});
{ "acknowledged" : true, "insertedId" : 12 }

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

> db.demo534.find();

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

{ "_id" : 10, "ProductId" : 100, "ProductName" : "Product-1" }
{ "_id" : 11, "ProductId" : 100, "ProductName" : "Product-2" }
{ "_id" : 12, "ProductId" : 101, "ProductName" : "Product-1" }

以下は、MongoDBで構造化グループ化クエリを実装するためのクエリです-

> db.demo534.aggregate(
... {
...    $group:
...    {
...       _id:
...          {
...             productName: "$ProductName",
...             productId: "$ProductId"
...          },
...          count:
...             {
...                $sum: 1
...             }
...          },
...       },
...       {
...          $group:
...             {
...                _id: "$_id.productId",
...                itemCounts:
...                   {
...                      "$push":
...                         {
...                            productName: "$_id.productName",
...                            count: "$count"
...                   }
...             }
...       }
... })

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

{ "_id" : 101, "itemCounts" : [ { "productName" : "Product-1", "count" : 1 } ] }
{ "_id" : 100, "itemCounts" : [ { "productName" : "Product-2", "count" : 1 }, { "productName" : "Product-1", "count" : 1 } ] }

  1. 新しいフィールドを追加し、価格結果を特定の数値で割った値を連結するMongoDBクエリ

    新しいフィールドを追加するには、MongoDBの$addFieldsを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo719.insertOne( ...    { ...       "Number":"7374644", ...       "details" : { ...          "otherDetails" : [ ... &

  2. 個別の値の出現をカウントし、その結果を新しい列に表示するMySQLクエリ?

    まずテーブルを作成しましょう- mysql> create table DemoTable (    Value int ); Query OK, 0 rows affected (0.57 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(80); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(90); Query OK, 1 row affected (0