Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

카운트를 표시하는 새 필드와 함께 결과를 표시하기 위한 MongoDB의 "구조화된" 그룹화 쿼리

<시간/>

이를 위해 MongoDB IN 집계()에서 $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 } ] }