2014-01-25 73 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」)