Martin Preusse
Martin Preusse

Reputation: 9369

Neo4j/Cypher: Convert string to double

I have stored a double (-0.1643) as string ("-0.1643") in a property on a neo4j relationship.

If I try to filter on this value with a numeric comparison:

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

Cypher throws an error:

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

Obviously, I could store the data as a numeric value. But is it possible to convert the string to double in cypher? Something like:

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

Upvotes: 10

Views: 12041

Answers (2)

Wesam Nabki
Wesam Nabki

Reputation: 2614

you can use this:

RETURN toFloat("0.0125")

Upvotes: 7

Wouter
Wouter

Reputation: 4016

Check out release 2.0.2. It added to type functions, "toInt, toFloat, toStr". It looks like toDouble doesn't exist, but perhaps float is precise enough for you?

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

Upvotes: 9

Related Questions