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

时间:2014-01-25 10:28:57

标签: neo4j cypher

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

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

MATCH (n1:Node)-[r:RELATION]-(n2:Node)
WHERE r.number < -0.1 RETURN n1, n2

Cypher抛出错误:

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

显然,我可以将数据存储为数值。但是有可能在密码中将字符串转换为double吗?类似的东西:

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

2 个答案:

答案 0 :(得分:6)

查看2.0.2版。它添加了类型函数,&#34; toInt,toFloat,toStr&#34;。它看起来像是不存在,但浮动对你来说可能是精确的吗?

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

答案 1 :(得分:2)

你可以用这个:

RETURN toFloat(&#34; 0.0125&#34;)