我在我们的Product
-nodes上有一个属性-nodes,并且希望执行一个密码查询,这个查询为我提供了使用quantity = 20
的所有节点.问题是,在neo4j中,数量是作为字符串存储的。在密码查询中是否有将属性转换为整数的方法?
// This fails to find the required nodes
MATCH (p:Product) WHERE p.quantity = 20;
// This finds them
MATCH (p:Product) WHERE p.quantity = "20";
// I would like to do this
MATCH (p:Product) WHERE INT(p.quantity) = 20;
PS:这是一个非常简化的用法,我们没有真正的产品和数量,只是面对现有的neo4j数据,该数据将整数值存储为字符串,我们希望对这些字符串进行一些匹配。
发布于 2014-01-15 01:56:26
你可以反过来做。
MATCH (p:Product) WHERE p.quantity = str(20) RETURN p;
也应该和帕拉姆一起工作。
MATCH (p:Product) WHERE p.quantity = str({quantity}) RETURN p;
甚至与内联属性匹配
MATCH (p:Product {quantity : str({quantity})}) RETURN p;
发布于 2015-02-23 21:39:31
MATCH (p:Product) WHERE toInt(p.quantity) = 20;
发布于 2014-01-15 01:12:34
我早些时候也曾面临过这个问题。据我所知,不可能直接在密码中进行转换。我使用了一个小型Java脚本(使用标准Java )来更改存储值的数据类型。不过,这是几个月前的事了,所以它可能在2.0版本中发生了变化。
https://stackoverflow.com/questions/21132844
复制相似问题