将neo4j Integer对象转换为JavaScript整数

时间:2016-06-26 11:24:21

标签: javascript neo4j

我在neo4j中存储dateBirth毫秒。

使用浏览器时,我得到了这个:

match (u:User) return u.dateBirth // Returns -2209078800000 

当使用螺栓驱动程序(neo4j v3-javascript)时,我得到了这个:

match (u:User) return toInt(u.dateBirth) as dateBirth
// Returns: Integer { low: -1465609856, high: -515 }

如何在JavaScript中将此整数对象转换为原始数字?

2 个答案:

答案 0 :(得分:3)

readme中所述:

  

Neo4j类型系统包括64位整数值。但是,Javascript只能安全地表示 - (253-1)和(253-1)之间的整数。为了支持完整的Neo4j类型系统,驱动程序包含一个显式的Integer类型。每当驱动程序从Neo4j接收到Integer值时,它将由驱动程序用Integer类型表示。

您可以使用toInt()(假设为32位整数)或toNumber()转换为最近的浮点javascript数字类型。

Integer类型的详细文档可用here

答案 1 :(得分:0)

我正在使用here中的此功能。到目前为止效果很好!

function toNumber({ low, high }) {
  let res = high

  for (let i = 0; i < 32; i++) {
    res *= 2
  }

  return low + res
}