2016-06-28 2 views
2

Java에서 Long 값을 int64로 저장하는 MongoDB에 씁니다. 그때 JS (사용 유성)의 값을 페치MongoDB int64 및 JavaScript

nanoTimestamp: 1467100788819818000

및 I는 다음과 같은 목적으로 끝낼 : RoboMongo 통해 데이터를 찾아 I는 다음의 값을 알 수

Object {_bsontype: "Long", low_: 932437528, high_: 341586032}

이 유형의 클라이언트 측에서 어떻게 작동합니까?

답변

0

여기서 문제는 JavaScript의 숫자 형식이 IEEE-754 배정 밀도 이진 부동 소수점이며 약 15 자리의 소수 정밀도를 갖는다는 점입니다. 당신이 BSON 긴 그에서 JS 번호를 얻을 수 있지만 그래서 :

// May not be precise! 
var num = l.high_ * Math.pow(2,32) + l.low_; 

를 ... 정확히 같은 번호되지 않습니다 (귀하의 예를 들어 경우, 그것은 1467100837142847000 나올 것이다).

정확하지 않은 경우 (여기서 나노초에 대해 이야기하고 있습니다) 모든 설정이 완료되었습니다. "여러 자바 스크립트 중 하나를 사용하여 다음

 
nanoTimestamp: "1467100788819818000" 

... 그리고 :

그렇지 않다면, 당신은 자바 스크립트에서 이러한 다룰 필요가, 당신은 문자열보다는 긴로 기록 고려해 볼 수 있습니다 임의의 큰 정수 또는 부동 소수점 수에 대한 연산을 수행 할 수있는 "큰 수"라이브러리를 제공합니다.