MongoDB NumberLong 값이란?
MongoDB의 mongo 셸(mongo shell)은 64비트 정수를 안전하게 다루기 위해 NumberLong() 래퍼(wrapper)를 제공합니다. 일반적인 JavaScript 숫자 타입은 정밀도 한계로 인해 매우 큰 정수를 정확하게 표현할 수 없기 때문에, 64비트 범위의 정수를 저장하거나 조회할 때는 반드시 NumberLong()을 사용해야 합니다.
이 글에서는 NumberLong 값을 변수에 담고, toString() 메서드를 활용해 화면에 출력하는 방법을 예제와 함께 살펴보겠습니다.
NumberLong 값 출력 기본 문법
사용자가 지정한 변수에 NumberLong 값을 할당한 뒤, toString() 메서드를 호출하여 값을 문자열 형태로 출력할 수 있습니다.
var anyVariableName = NumberLong("yourLongNumber");
yourVariableName.toString();예제 1: NumberLong 값 생성 및 출력
위에서 설명한 개념을 실제로 구현해 보겠습니다. 먼저 변수에 큰 정수를 담은 후 출력하는 코드입니다.
> var number = NumberLong("231231231231121231");
> number.toString();위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
NumberLong("231231231231121231")예제 2: 다른 NumberLong 값 출력하기
두 번째 예제 역시 동일한 방식으로 진행됩니다. 새로운 변수에 다른 64비트 정수를 할당하고 출력해 보겠습니다.
> var anotherNumber = NumberLong("765765765765567576");
> anotherNumber.toString();실행 결과는 아래와 같습니다.
NumberLong("765765765765567576")추가 팁: valueOf() 활용하기
toString() 외에도 valueOf() 메서드를 사용하면 NumberLong("...") 래퍼 없이 순수한 숫자 값만 얻을 수 있습니다.
> number.valueOf(); 231231231231121231
출력 형식에 따라 toString()과 valueOf()를 적절히 선택하여 사용하면 됩니다. 로그 확인이나 디버깅 시에는 래퍼가 포함된 toString() 결과가 더 직관적일 수 있습니다.
정리
MongoDB에서 64비트 정수를 다룰 때는 NumberLong()으로 값을 감싸고, 출력이 필요할 때는 toString() 메서드를 호출하면 됩니다. 이 방법을 활용하면 JavaScript의 숫자 정밀도 한계를 걱정하지 않고도 대용량 정수 데이터를 안전하게 처리할 수 있습니다.