2014-01-25 48 views
6

我在neo4j关系的属性中存储了一个双精度(-0.1643)作为字符串(“-0.1643”)。Neo4j/Cypher:将字符串转换为双倍

如果我尝试这个值过滤与数字比较:

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 

很显然,我可以在数据存储为一个数值。但是有可能将字符串转换为双精度?例如:

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

回答

3

检出版本2.0.2。它添加到键入函数,“toInt,toFloat,toStr”。它看起来像双不存在,但也许浮动对你来说足够精确?

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

+0

谢谢,双是完全没有问题;) –

2

您可以使用此:

RETURN toFloat( “0.0125”)