我正在尝试对gwt上的no4j数据库执行cypher查询。
我将一些节点int
存储为属性detail
。如果我正确地使用neoclipe,我现在注意到,这些值作为String
值存储在数据库中。
在我的查询中,我有以下部分不起作用:
START ...
MATCH node-[:SomeTag]->intnode
WHERE intnode.detail < 10
RETURN ...
我得到了:
不知道如何比较。左:15;右:10:不知道如何比较:左:15;右:10
所以intnode.detail < 10
不起作用。我也试过这个:intnode.detail < STR(10)
,因为我认为它会比较哈希值或ascii值,但我得到了同样的错误。
修改
我读过,可以在存储数据的同时设置@GraphProperty
,但我怎样才能在gwt中这样做?
我的意思是,如果我有一个节点,我可以,例如写
Object obj = (Object) 10;
node.setProperty("detail", obj);
我现在怎么告诉neo4j,obj是一个int?
答案 0 :(得分:2)
这个答案主要集中在你的初步问题上 - 而不是你在编辑部分中添加的问题。
我刚才有一个类似的问题,在一个cypher查询的WHERE部分内进行了比较。我试着做一些像
MATCH ...
WHERE value > 1
导致与您的错误信息非常相似的错误消息。经过一些测试我发现查询有效,如果我添加单引号。这是我的解决方案:
MATCH ...
WHERE value > '1'
(注意引号) 我也注意到,这不适用于双引号
我希望这有助于您和/或遇到此问题的任何其他人:)
答案 1 :(得分:0)
我认为intnode.detail值存储为字符串,因此您无法与整数值进行比较。
你必须这样做
开始...... MATCH节点 - [:SomeTag] - &gt; intnode WHERE intnode.detail&lt; “10” 返回...