Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB $divide 집계 연산자 사용법 완벽 가이드

MongoDB $divide 집계 연산자란?

MongoDB의 애그리게이션(Aggregation) 프레임워크에서 $divide 연산자는 두 숫자 필드를 나누어 새로운 값을 계산할 때 사용하는 강력한 도구입니다. 이 연산자를 활용하면 저장된 데이터를 기반으로 비율, 평균값 등 다양한 파생 지표를 손쉽게 도출할 수 있습니다.

이번 글에서는 실제 예제를 통해 $divide 연산자의 사용법을 단계별로 살펴보겠습니다.

1단계: 컬렉션 생성 및 문서 삽입

먼저 예제로 사용할 컬렉션을 만들고 문서를 하나 삽입해 보겠습니다. insertOne() 메서드를 사용합니다.

> db.aggregationOperatorDemo.insertOne({"FirstValue":392883,"SecondValue":10000000000});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5cd541452cba06f46efe9f01")
}

2단계: 저장된 문서 확인하기

find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 조회할 수 있습니다.

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

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{
    "_id" : ObjectId("5cd541452cba06f46efe9f01"),
    "FirstValue" : 392883,
    "SecondValue" : 10000000000
}

3단계: $divide 연산자로 나누기 수행

이제 aggregate() 메서드와 함께 $divide 연산자를 적용해 보겠습니다. $project 스테이지 안에서 FirstValue 필드를 SecondValue 필드로 나눈 결과를 새로운 필드인 Value에 담습니다.

> db.aggregationOperatorDemo.aggregate([
...   { "$project": { "Value": { "$divide": ["$FirstValue", "$SecondValue"] } } }
... ]);

실행 결과는 다음과 같습니다.

{ "_id" : ObjectId("5cd541452cba06f46efe9f01"), "Value" : 0.0000392883 }

$divide 연산자 사용 시 주의사항

  • 피제수와 제수의 순서: $divide 배열의 첫 번째 요소가 분자(피제수), 두 번째 요소가 분모(제수)입니다.
  • 0으로 나누기 금지: 제수가 0이면 오류가 발생하므로, 사전에 값 검증 로직을 추가하는 것이 좋습니다.
  • 결과 타입: 나눗셈 결과는 항상 부동소수점(double) 형태로 반환됩니다.

이처럼 $divide 연산자를 활용하면 복잡한 계산도 애그리게이션 파이프라인 내에서 간결하게 처리할 수 있습니다. $multiply, $subtract, $add 등 다른 산술 연산자들과 조합하면 더욱 다양한 데이터 분석이 가능합니다.