aggregate

이태규·2022년 2월 21일
0

express

목록 보기
22/28
const result = await collection.aggregate([
  {
      $match: { //조건절
        user_id: userid
        // itemCode : 1109 처럼 db에서 바로 가져오거나
        // project에서 true시킨거만 조건절에 쓰고 있음
      }
  },

  {
    $project: { //가져올 항목 (주문 시간)
      code: 1, //주문일자
      cnt : 1, //주문수량
      user_id :1
    }
  },
  
  {
    $group : {
      _id : "$code", // 그룹할 목록
      user_id : {$first : '$user_id'} ,
      count : {
        $sum : '$cnt'
        // $sum : '1' 을 하면 주문한 횟수가 나온다. 2시때는 2번 주문했고 이런식으로
      }
    }
  },

$project에서는 컬렉션 명이 된다.

$group :{
                _id : '$code1', //그룹기준
                count: {$sum : 1},
                pricetotal : {$sum: '$price'},
                quantity : {$sum : '$quantity'}
            }

$code1이 있으려면 $project에서 선언해줘야 함.
$sum: 1의 의미는 있으면 1씩 더해준다는 의미
$sum : ' $price'는 price 컬럼에 해당하는 값을 다 더해준다는 의미를 가지고 있다.

{
          $match: {
              code3: {$in : code3}
          }
      },
      {
          $project : {
              code3:1,
              price:1,
              quantity:1
          }
      },
      {
          $group :{
              _id : '$code3', //그룹기준
              count: {$sum : 1},
              pricetotal : {$sum: '$price'},
              quantity : {$sum : '$quantity'}
          }
      }

      ])
      

다음과 같이 in문을 활용할 수 있음.

profile
한 걸음씩 나아가자

0개의 댓글