关系属性与导致SyntaxError的节点混淆:不知道如何比较它

时间:2014-03-24 08:17:53

标签: neo4j

如果我进行以下Cypher查询,我的结果符合预期:

MATCH (:Keydata {key:"kgv"})<-[k:KEYDATA]-(s:Symbol) 
WHERE k.value>15.0 
RETURN k.value
  • 标签Keydata的节点具有属性{key:&#34; some string&#34;}
  • 标签的节点符号具有属性{key:&#34; some string&#34;}
  • 标签KEYDATA的关系具有属性{值:123.45}

但是如果我的符号节点之前匹配:

MATCH (s:Symbol) 
MATCH (:Keydata {key:"kgv"})<-[k:KEYDATA]-(s) 
WHERE k.value>15.0 
RETURN k.value

我得到了这个错误:不知道如何比较它。左:&#34; EVN&#34; (串);右:15.0(双)

我正在使用Neo4j 2.0.1

2 个答案:

答案 0 :(得分:0)

您正在将String值与double值进行比较,这是不可能的。你有两个选择。将值存储在其他类型中或使用Neo4j 2.1.0-M01并使用toFloat()方法。 E.g。

WHERE toFloat(k.value)>15.0

答案 1 :(得分:0)

MATCH (s:Symbol),(:Keydata {key:"kgv"})<-[k:KEYDATA]-(s) 
WHERE k.value>15.0 
RETURN k.value

正在工作。好像多个MATCHES有不同的含义