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

합계 MongoDB 하위 문서 필드?

<시간/>

이를 위해 집계 프레임워크를 사용할 수 있습니다. 먼저 문서로 컬렉션을 만들어 보겠습니다. −

> db.summingSubDocumentDemo.insertOne(
... { "_id" :101, "CustomerDetails" : { "CustomerPurchase" : { "CustomerPurchaseAmount" : 2000 } } });
{ "acknowledged" : true, "insertedId" : 101 }

> db.summingSubDocumentDemo.insertOne( { "_id" :102, "CustomerDetails" : { "CustomerPurchase" : { "CustomerPurchaseAmount" : 3000 } } });
{ "acknowledged" : true, "insertedId" : 102 }

> db.summingSubDocumentDemo.insertOne( { "_id" :103, "CustomerDetails" : { "CustomerPurchase" : { "CustomerPurchaseAmount" : 5000 } } });
{ "acknowledged" : true, "insertedId" : 103 }

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다. -

> db.summingSubDocumentDemo.find().pretty();

이것은 다음과 같은 출력을 생성합니다 -

{
   "_id" : 101,
   "CustomerDetails" : {
      "CustomerPurchase" : {
         "CustomerPurchaseAmount" : 2000
      }
   }
}
{
   "_id" : 102,
   "CustomerDetails" : {
      "CustomerPurchase" : {
         "CustomerPurchaseAmount" : 3000
      }
   }
}
{
   "_id" : 103,
   "CustomerDetails" : {
      "CustomerPurchase" : {
         "CustomerPurchaseAmount" : 5000
      }
   }
}

다음은 MongoDB 하위 문서 필드를 합산하는 쿼리입니다. −

> db.summingSubDocumentDemo.aggregate({$group : {_id: "",
... totalAmount : {$sum: "$CustomerDetails.CustomerPurchase.CustomerPurchaseAmount"}}},
... {$project: {_id: 0, totalAmount: 1}});

이것은 다음과 같은 출력을 생성합니다 -

{ "totalAmount" : 10000 }