Neo4j:语法错误

时间:2016-10-13 07:09:32

标签: neo4j cypher

Neo4j查询不在查询中的电影数据库  Neo4j - NOT IN query

MATCH (actor:Actor {name:"Tom Hanks"} )-[:ACTED_IN]->(movies)<-[:ACTED_IN]-(coactor)
WITH collect(distinct coactor) as coactors
MATCH (actor:Actor)
WHERE actor NOT IN coactors
RETURN actor

运行此查询时出错:

无效的输入&#39; N&#39;:预期的空白,评论,节点标签,MapLiteral,参数,关系模式,&#39;(&#39;,&#39;。&#39; ,&#39; [&#39;,&#34; =〜&#34;,IN,STARTS,ENDS,CONTAINS,IS,&#39; ^&#39;,&#39; *&#39 ;,&#39; /&#39;,&#39;%&#39;,&#39; +&#39;,&#39; - &#39;,&#39; =&#39 ;,&#34;&lt;&gt;&#34;,&#34;!=&#34;,&#39;&lt;&#39;,&#39;&gt;&#39;,&# 34;&lt; =&#34;,&#34;&gt; =&#34;,AND,XOR,OR,LOAD CSV,START,MATCH,UNWIND,MERGE,CREATE,SET,DELETE,REMOVE,FOREACH,WITH ,RETURN,UNION,&#39 ;;&#39;或输入结束(第4行,第13栏(偏移:160)) &#34;演员不在演员&#34;

2 个答案:

答案 0 :(得分:2)

我相信他们的示例查询中存在一个小错误。

WHERE actor NOT IN ...

是不正确的语法(虽然我不介意Cypher更新允许它)。它应该是

WHERE NOT actor IN ...

答案 1 :(得分:0)

InverseFalcon有正确的答案,但请注意,解析器会准确告诉您错误的位置:第4行,第13列。

WHERE actor NOT IN coactors
            ^

它还会告诉您此时可以预期的内容(包括IN),并且不包含NOT