>我正在尝试对 gwt 上的 no4j 数据库执行密码查询。
我在某些节点中存储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 是一个整数?
这个答案主要集中在你最初的问题上,而不是你在编辑部分添加的问题。
我刚刚在密码查询的 WHERE 部分内进行比较时遇到了类似的问题。 我试图做类似的事情
MATCH ...
WHERE value > 1
这导致了与您的错误消息非常相似的错误消息。经过一些测试,我发现如果我添加单引号,查询有效。这是我的解决方案:
MATCH ...
WHERE value > '1'
(注意引号)我还注意到,这不适用于双引号
我希望这对您和/或遇到此问题的任何其他人有所帮助:)
我认为 intnode.detail 值存储为字符串,因此您将无法与整数值进行比较。
你必须这样做
开始。。。MATCH node-[:SomeTag]->intnodeWHERE intnode.detail <"10"返回。。。