可能是一个愚蠢的问题,但无法弄清楚: Node的属性是:1-4567655
我假设查询
MATCH (t:Ticket {number:"1-4567655"}) return t
失败导致neo4j计算1减4567655当然不匹配。如果这就是我怎么能查询该属性的原因?我试过例如
MATCH (t:Ticket {number:toString(1-556264051)}) RETURN t
但这也不起作用。任何人都知道如何搜索这个?
谢谢!
答案 0 :(得分:3)
如果您执行此查询:
MATCH (t:Ticket {number:"1-4567655"}) return t
Neo4J绝对会不进行数学运算,并最终得到字符串-4567654(如果你做了数学运算,这就是你得到的)。不,你真的指定了一个值为#34; 1-4567655"的常规字符串。因此,如果此查询没有返回任何内容,则最可能的原因是因为您没有Ticket
节点具有该数字。
你可以在Neo4j中做简单的数学运算。查询RETURN 10-2
为您提供答案8.当我运行return 1-556264051;
时,我得到-556264050
。使用toString
就可以了。所以我再一次认为你的数据库实际上缺少一个Ticket
节点,它有一个具有该值的数字属性。
number
属性是否可能是不同类型(长或双)而不是字符串?
例如,我这样做了:
create (t:Ticket {number: 1});
如果您尝试将其与MATCH (t:Ticket { number: "1" }) return t
匹配,则您什么也得不到。因为字符串"1"
和数字1
不是一回事。
尝试更改您的查询以查找数字(而非字符串),并且我打赌会帮助您。