Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 密码辅助,将两个可选匹配与一个匹配相结合_Neo4j_Cypher - Fatal编程技术网

Neo4j 密码辅助,将两个可选匹配与一个匹配相结合

Neo4j 密码辅助,将两个可选匹配与一个匹配相结合,neo4j,cypher,Neo4j,Cypher,我在试着用一个密码 OPTIONAL MATCH (a1:Article) WHERE a1.status='active' WITH collect(a1) as a1_col OPTIONAL MATCH (a2:Article) WHERE a2.category='xyz' WITH DISTINCT a1_col + collect(a2) as a MATCH (a)-[:author]->(u:User) WHERE NOT id(u)=101 RETURN a 我得到了类

我在试着用一个密码

OPTIONAL MATCH (a1:Article) WHERE a1.status='active'
WITH collect(a1) as a1_col
OPTIONAL MATCH (a2:Article) WHERE a2.category='xyz'
WITH DISTINCT a1_col + collect(a2) as a
MATCH (a)-[:author]->(u:User)
WHERE NOT id(u)=101
RETURN a

我得到了
类型不匹配:这个密码已经定义了一个冲突类型列表
错误,如果有任何帮助,我将不胜感激。我需要可选的匹配和匹配条款分开这里

变量
a
是一个
列表
,您可以在
MATCH
子句中将其用作
节点

您应该改用此查询:

OPTIONAL MATCH (a1:Article) WHERE a1.status='active'
WITH collect(a1) as a1_col
OPTIONAL MATCH (a2:Article) WHERE a2.category='xyz'
WITH DISTINCT a1_col + collect(a2) as a
MATCH (article)-[:author]->(u:User)
WHERE NOT id(u)=101 AND article IN a
RETURN a
我认为您可以像这样优化查询:

MATCH (u:User) WHERE id(u)=101 WITH u
MATCH (a:Article)
WHERE (a.category='xyz' OR a.status='active') AND
      NOT (a)-[:author]->(u)
RETURN collect(DISTINCT a)

感谢@logisima,它可以正常工作,优化为
MATCH(article:article)
这个窗台匹配所有文章,有没有办法只匹配上面的
a