문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

$mod (애그리게이션)

이 페이지의 내용

  • 정의
  • 구문
  • 행동
  • 예제
$mod

한 숫자를 다른 숫자로 나누고 나머지 숫자를 반환합니다.

$mod 표현식의 구문은 다음과 같습니다.

{ $mod: [ <expression1>, <expression2> ] }

첫 번째 인수는 피제수이고 두 번째 인수는 제수입니다. 즉, 첫 번째 인수를 두 번째 인수로 나눕니다.

인수는 숫자로 해석되는 한 유효한 표현식 이 될 수 있습니다. 표현식에 대한 자세한 내용은 표현식 연산자를 참조하세요.

버전 7.2부터 $mod 연산자의 출력 데이터 유형은 두 입력 데이터 유형 중 더 큰 데이터 유형입니다.

참고

7.2 버전 이전에는 입력의 값과 필드 유형에 따라 $mod 출력 유형이 결정되었습니다.

  • 제수는 double 유형이지만 정수 값을 갖습니다.

  • 피제수는 int 또는 long 유형입니다.

이 경우 MongoDB는 모드 연산을 수행하기 전에 제수를 배당 데이터 유형으로 변환합니다. 출력 데이터 유형은 피제수 데이터 유형입니다.

피제수가 음수이면 나머지도 음수입니다. 이 동작에 대한 자세한 내용은 공식 JavaScript 문서 를 참조하세요. .

예시는 음수 피제수를 참조하세요.

다음 문서가 포함된 conferencePlanning collection을 생각해 보세요.

db.conferencePlanning.insertMany( [
{ "_id" : 1, "city" : "New York", "hours" : 80, "tasks" : 7 },
{ "_id" : 2, "city" : "Singapore", "hours" : 40, "tasks" : 4 }
] )

다음 집계에서는 $mod 표현식을 사용하여 hours 필드의 나머지를 tasks 필드로 나눈 값을 반환합니다.

db.conferencePlanning.aggregate( [
{ $project: { remainder: { $mod: [ "$hours", "$tasks" ] } } }
] )

이 연산은 다음과 같은 결과를 반환합니다.

[
{ '_id' : 1, 'remainder' : 3 },
{ '_id' : 2, 'remainder' : 0 }
]

다음 문서가 포함된 modExample을 생각해 보겠습니다.

db.modExample.insertOne( [
{ "_id" : 1, "dividend": -13, "divisor": 9 }
] )

이 집계는 $mod 표현식을 사용하여 dividend의 나머지를 divisor 필드로 나눈 값을 반환합니다:

db.modExample.aggregate( [
{ $project: { remainder: { $mod: [ "$dividend", "$divisor" ] } } }
] )

이 연산은 다음과 같은 결과를 반환합니다.

[ { '_id' : 1, 'remainder' : -4 } ]
← 분(집계)

이 페이지의 내용