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

MongoDB 셸에서 숫자가 기본적으로 부동 소수점으로 처리될 때, 정수로 명시적으로 지정하는 방법

MongoDB 셸의 기본 숫자 처리 방식

네, MongoDB 셸(mongo shell)은 기본적으로 입력된 모든 숫자를 배정밀도 부동 소수점(double)으로 취급합니다. 따라서 숫자를 정수(int)나 다른 숫자 타입으로 다루고 싶다면 해당 타입을 명시적으로 지정해 주어야 합니다.

이때 가장 일반적으로 사용되는 것이 NumberInt() 함수입니다. 이 외에도 64비트 정수를 위한 NumberLong(), 십진수를 위한 NumberDecimal() 함수를 상황에 맞게 활용할 수 있습니다.

기본 문법

var anyVariableName = [NumberInt("yourValue1"), NumberInt("yourValue2"), ...N];

예제: 숫자를 정수로만 처리하기

아래와 같이 배열 요소 각각을 NumberInt()로 감싸면, 값들이 부동 소수점 아닌 정수로 저장됩니다.

> var integerArrayDemo = [NumberInt("50"), NumberInt("60"),
    NumberInt("70"), NumberInt("90"), NumberInt("40")];

printjson()으로 배열 출력하기

배열 값을 보기 좋게 출력하려면 printjson()을 사용합니다.

> printjson(integerArrayDemo);

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

[
    NumberInt(50),
    NumberInt(60),
    NumberInt(70),
    NumberInt(90),
    NumberInt(40)
]

print()로 배열 출력하기

배열 값을 한 줄로 단순하게 표시하고 싶다면 print()를 사용할 수도 있습니다.

> print(integerArrayDemo);

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

NumberInt(50),NumberInt(60),NumberInt(70),NumberInt(90),NumberInt(40)

정리

MongoDB 셸에서 숫자 리터럴은 기본적으로 double 타입으로 해석되므로, 정확한 데이터 타입이 필요한 경우에는 반드시 NumberInt(), NumberLong(), NumberDecimal() 같은 생성자를 통해 타입을 명시하는 것이 좋습니다. 특히 금액처럼 정확도가 중요한 데이터라면 NumberDecimal() 사용을 권장합니다.