Neo4j/Cypher:将字符串转换为double

Mar*_*sse 8 neo4j cypher

我在neo4j关系的属性中存储了一个double(-0.1643)作为字符串("-0.1643").

如果我尝试使用数字比较过滤此值:

MATCH (n1:Node)-[r:RELATION]-(n2:Node)
WHERE r.number < -0.1 RETURN n1, n2
Run Code Online (Sandbox Code Playgroud)

Cypher抛出一个错误:

Don't know how to compare that. Left: "-0.1643" (String); Right: -0.1 (Double)
Neo.ClientError.Statement.InvalidSyntax
Run Code Online (Sandbox Code Playgroud)

显然,我可以将数据存储为数值.但是有可能在密码中将字符串转换为double吗?就像是:

MATCH (n1:Node)-[r:RELATION]-(n2:Node)
WHERE as.double(r.number) < -0.1 RETURN n1, n2
Run Code Online (Sandbox Code Playgroud)

Wou*_*ter 6

查看2.0.2版.它添加了类型函数"toInt,toFloat,toStr".看起来似乎不存在,但也许漂浮对你来说足够精确?

http://www.neo4j.org/release-notes#2.0.2


Wes*_* Na 5

你可以使用这个:

返回到浮动(“0.0125”)