如何仅显示与使用Neo4J的Cypher选择的节点相连的节点?
我只希望看到标记为“:Context”的节点,这些节点连接到所有(或最大)标记为“:Concept”的节点 我当前正在使用一个查询:如何仅显示与使用Neo4J的Cypher选择的节点相连的节点?,neo4j,cypher,Neo4j,Cypher,我只希望看到标记为“:Context”的节点,这些节点连接到所有(或最大)标记为“:Concept”的节点 我当前正在使用一个查询: match(c:Concept),(ctx:Context),(c)-[r]->(ctx),其中(c.name='italy'或c.name='pick')返回ctx,c 这将得出以下结果: 我如何删除所有不必要的绿色节点(它们是“:Context”类型的节点),而只保留那些同时连接到“pick”和“意大利语”:Concept节点的节点 我还希望能够对3个节点和
match(c:Concept),(ctx:Context),(c)-[r]->(ctx),其中(c.name='italy'或c.name='pick')返回ctx,c代码>
这将得出以下结果:
我如何删除所有不必要的绿色节点(它们是“:Context”类型的节点),而只保留那些同时连接到“pick”和“意大利语”:Concept节点的节点
我还希望能够对3个节点和更多节点执行相同的搜索。无法理解什么是最好的方法(有或没有APOC)
以下查询有效:
match(c1:Concept{name:“意大利语”}-->(ctx:Context)(ctx:Context)(ctx:Context)您可以在这样的其他匹配中匹配任意多个分支
match (c1:Concept{name:"italy"})-->(ctx:Context)<--(c2:Concept{name:"pick"})
match (c3:Concept{name:"france"})-->(ctx)
return ctx;
非常感谢。以及如何创建一个参数“列表”?找到了答案:匹配(c:Concept),其中c.name in([“italy”、“pick”、“Nearo”])与COLLECT(c)as concepts匹配(ctx:Context),其中所有(c in concepts WHERE(c)-->(ctx))返回ctx@DmitryParanyushkin我修复了语法,并添加了如何使用Neo4j参数的链接。(以前的语法有效,但不推荐使用新语法)在浏览器中,可以使用:params
设置参数。有关详细信息,请使用params help
。
MATCH (c:Concept)
WHERE c.name in $list
WITH COLLECT(c) as concepts
MATCH (ctx:Context)
WHERE ALL(c in concepts WHERE (c)-->(ctx))
RETURN ctx