gpt4 book ai didi

node.js - 使用参数化查询时,Neo4J 始终将 NodeJS 数字默认为 float

转载 作者:太空宇宙 更新时间:2023-11-03 23:15:46 25 4
gpt4 key购买 nike

我尝试将 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com