我正在尝试将Neo4j与NodeJS结合使用,使用参数将一些值保存到Neo4j节点中,如下所示:
{
query: 'MATCH (n{id:$id}) SET n.n1 = $number RETURN n',
params: { id: 'someId', number: 15 }
}
当我在Neo4j中查看数据时,数据始终显示为{n1: 15.0}
而不是{n1: 15}
。除非数字中没有明确的小数位数,否则是否有一种简单的方法将数字保持为整数?
答案 0 :(得分:1)
您可以使用TOINTEGER()
函数将其转换为整数:
MATCH (n{id:$id}) SET n.n1 = TOINTEGER($number) RETURN n
[已更新]
如果您使用的是官方neo4j Javascript driver,则应阅读其special support for integers in Javascript(以解决Javascript不支持neo4j使用的64位整数的事实)。 / p>
在这种情况下,应使用驱动程序的neo4j.int()
方法传递整数参数值,否则它将作为浮点数传递。
例如:
var neo4j = require('neo4j-driver').v1;
var result = session.run(
"MATCH (n{id:$id}) SET n.n1 = $number RETURN n",
{id: 'abc123', number: neo4j.int(15)}
);