我尝试将 Neo4j 与 NodeJS 结合使用,使用参数将一些值保存到 Neo4j Node 中,如下所示:
{
query: 'MATCH (n{id:$id}) SET n.n1 = $number RETURN n',
params: { id: 'someId', number: 15 }
}
当我在 Neo4j 中查看数据时,数据始终显示为 {n1: 15.0}
而不是 {n1: 15}
。是否有一种简单的方法可以将数字保留为整数,除非数字中有明确的小数?
最佳答案
您可以使用TOINTEGER()
函数转换为整数:
MATCH (n{id:$id}) SET n.n1 = TOINTEGER($number) RETURN n
[已更新]
如果您使用的是官方neo4j Javascript driver ,那么你应该阅读它的 special support for integers in Javascript (解决 JavaScript 不支持 Neo4j 使用的 64 位整数的问题)。
在您的情况下,您应该使用驱动程序的 neo4j.int()
方法来传递整数参数值,否则它将作为 float 传递。
例如:
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)}
);
关于node.js - 使用参数化查询时,Neo4J 始终将 NodeJS 数字默认为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55695183/