Neo4j的返回一个整数,而不是{高:0,低:10}

Ter*_*how 3 neo4j cypher

有没有一种方式,通过暗号只返回一个整数?

我用的Neo4j和JavaScript司机工作。但是,当我做一个count()我得到{low: 10, high: 0}。我想迫使这回,而不是上面的物体低整数。通过密码可以做到这一点吗?

请注意,我不想在neo4j javascript驱动程序中执行此操作,而宁愿在cypher中执行此操作,因为我知道这将是一个很小的数字...

Inv*_*con 5

Cypher支架仅适用于长期和Double值。JavaScript是不能够充分代表64位多头。

还有这里建议从到Neo4j的查询提供参数时,以及处理返回多头处理这个Neo4j的JavaScript的驱动程序。

  • 是的,我看到了。但是有没有办法强制 neo4j 使用 Double 值,以便它们在 JS 中显示为整数?每次我有一个使用整数的查询时,都必须编写定制的 JS 逻辑非常乏味。 (2认同)

Eli*_*iuX 5

使用neo4j.integer.toNumber。所以基本上当你想表示这样的值时,使用类似的东西

variable.toNumber()
Run Code Online (Sandbox Code Playgroud)

您将获得良好的旧int值。


paw*_*i92 5

从驱动程序的 1.6 版本开始,可以将其配置为仅返回本机数字而不是自定义 Integer 对象。配置选项影响驱动程序返回的所有整数。如果数据库包含 [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER] 范围之外的整数,启用此选项可能会导致精度损失和返回不正确的数值

var driver = neo4j.driver(
  'neo4j://localhost',
  neo4j.auth.basic('neo4j', 'neo4j'),
  { disableLosslessIntegers: true }
)
Run Code Online (Sandbox Code Playgroud)

来源:https : //github.com/neo4j/neo4j-javascript-driver#a-note-on-numbers-and-the-integer-type

请记住,MAX_SAFE_INTEGER 是 2^53-1 = 9,007,199,254,740,991