我似乎在node.js中获取了一个thrift对象的不同的纪元日期值,而不是存储在mongo数据库中并由服务返回的
Thrift定义文件(thrift v0.9.0),我有
struct Profile {
...
4: i64 createDate,
5: i64 lastUpdateDate
Mongo记录
"createdTimestamp" : NumberLong("1366334385361"),
"lastUpdatedTimestamp" : NumberLong("1366334385361")
节点报告
createDate: 534785233,
lastUpdateDate: 534785233
生成的节点thrift客户端似乎引用了I64。
if (this.createDate !== null && this.createDate !== undefined) {
output.writeFieldBegin('createDate', Thrift.Type.I64, 14);
output.writeI64(this.createDate);
output.writeFieldEnd();
}
我感谢任何见解。
由于
答案 0 :(得分:1)
给定数字的二进制表示形式为:
1366334385361 -> 10011111000011111111000000010110011010001
534785233 -> 00000000000011111111000000010110011010001
即。如果您使用1366334385361的低32位,则得到534785233.因此,在您正在使用的程序或包中的某处,它将被转换/截断为32位整数,例如: INT(1366334385361)