문서 메뉴

문서 홈애플리케이션 개발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 표현식을 사용하여 dividenddivisor 필드로 나눈 나머지를 반환합니다.

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

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

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

이 페이지의 내용