MongoDB에서 LONG 숫자 삽입하기
64비트 정수(Long 타입) 숫자를 MongoDB에 저장하려면 NumberLong() 함수를 사용해야 합니다. 일반적인 자바스크립트 숫자 표기법으로는 53비트 이상의 정밀도를 안전하게 표현할 수 없기 때문에, 64비트 범위의 큰 정수를 다룰 때는 반드시 NumberLong()을 사용하는 것이 좋습니다.
컬렉션 생성 및 문서 삽입
아래 예제처럼 insert() 메서드와 함께 NumberLong()을 사용하여 문서를 삽입할 수 있습니다.
> db.demo273.insert({
... Name:"Robert",
... id: NumberLong("100000000000001"),
... isActive:true
...})
WriteResult({ "nInserted" : 1 })
> db.demo273.insert({
... Name:"David",
... id: NumberLong("98888888888888888"),
... isActive:false
...})
WriteResult({ "nInserted" : 1 })
> db.demo273.insert({
... Name:"Mike",
... id: NumberLong("999999999999"),
... isActive:true
...})
WriteResult({ "nInserted" : 1 })삽입된 문서 확인하기
find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 조회할 수 있습니다.
> db.demo273.find();
출력 결과
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
{ "_id" : ObjectId("5e4824df1627c0c63e7dbac3"), "Name" : "Robert", "id" : NumberLong("100000000000001"), "isActive" : true }
{ "_id" : ObjectId("5e4824e01627c0c63e7dbac4"), "Name" : "David", "id" : NumberLong("98888888888888888"), "isActive" : false }
{ "_id" : ObjectId("5e4824e11627c0c63e7dbac5"), "Name" : "Mike", "id" : NumberLong("999999999999"), "isActive" : true }참고 사항
NumberLong()을 사용할 때 값은 반드시 문자열 형태로 전달해야 합니다. 예를 들어 NumberLong("98888888888888888")처럼 작성하며, 따옴표 없이 숫자로 전달하면 정밀도 손실이 발생할 수 있습니다. 또한 최신 MongoDB 버전에서는 insert() 대신 insertOne() 또는 insertMany() 메서드 사용이 권장됩니다.