可选匹配不';t在Neo4j 2.0.0中工作正常

可选匹配不';t在Neo4j 2.0.0中工作正常,neo4j,cypher,Neo4j,Cypher,我的graphdb中有用户,他们投票选择品牌。我有一个案例,我需要找到不投票给任何品牌的用户。我准备了一个可以玩的控制台视图。我需要以“Trinity”命名的节点为例,在这个控制台示例中 在没有运气的情况下尝试了可选匹配。使用可选匹配的正确方法更麻烦(但可能更快): 由于其中在内部属于可选匹配(如在sql连接到(…))中),因此它可以用于指定可选匹配将遵循的约束 因此,如果您想过滤可选匹配的“结果”,您必须使用和将其分开,使用可选匹配的正确方法更麻烦(但可能更快): 由于其中在内部属于可选匹配

我的graphdb中有用户,他们投票选择品牌。我有一个案例,我需要找到不投票给任何品牌的用户。我准备了一个可以玩的控制台视图。我需要以“Trinity”命名的节点为例,在这个控制台示例中


在没有运气的情况下尝试了可选匹配。

使用可选匹配的正确方法更麻烦(但可能更快):

由于
其中
在内部属于
可选匹配
(如在sql
连接到(…)
)中),因此它可以用于指定可选匹配将遵循的约束


因此,如果您想过滤可选匹配的“结果”,您必须使用
将其分开,使用可选匹配的正确方法更麻烦(但可能更快):

由于
其中
在内部属于
可选匹配
(如在sql
连接到(…)
)中),因此它可以用于指定可选匹配将遵循的约束


因此,如果要筛选可选匹配的“结果”,则必须使用

将其分开,是否正在寻找一种方法来匹配没有特定关系的所有节点?比如
匹配(n:User)而不是n-[:投票]->()…
?天哪,这真的很简单吗?谢谢杰德伯格,这正是我想要的。我以前试过这样做:
MATCH(n:User)WHERE NOT n-[:Voted]->(b:Brand)
,但它不起作用。您是否正在寻找一种方法来匹配所有没有特定关系的节点?比如
匹配(n:User)而不是n-[:投票]->()…
?天哪,这真的很简单吗?谢谢杰德伯格,这正是我想要的。我以前试过这样做:
MATCH(n:User)WHERE NOT n-[:投票]->(b:Brand)
,但它不起作用。我不知道在哪里可以选择。当我从查询中删除第一个匹配项时,它不起作用。如果我删除'with',同样没有成功。但它仍然可以找到品牌。这个可选的匹配让我困惑。你能再解释一下吗?我不知道在哪里。当我从查询中删除第一个匹配项时,它不起作用。如果我删除'with',同样没有成功。但它仍然可以找到品牌。这个可选的匹配让我困惑。你能再解释一下吗。
MATCH (n:User)  
OPTIONAL MATCH (n)-[:Voted]->(brand) 
WITH n,brand 
WHERE brand IS NULL 
RETURN n, brand