Neo4j 如何编写cypher语句来查找我想要的第一个匹配节点

Neo4j 如何编写cypher语句来查找我想要的第一个匹配节点,neo4j,cypher,Neo4j,Cypher,我有这样的节点: (a {export:true})->(b {export:false})->(c {export:false})-> .....some other nodes with export field is false-> (d {export:true})->(e {export:true}) 现在我只想找出a和d,它们有关系 (a {export:true})-->(b {expor:true}) 我写了一些密码语句,但无法工作,

我有这样的节点:

 (a {export:true})->(b {export:false})->(c {export:false})->
 .....some other nodes with export field is false->
 (d {export:true})->(e {export:true})
现在我只想找出a和d,它们有关系

(a {export:true})-->(b {expor:true})
我写了一些密码语句,但无法工作,它们将返回a->d和a->e。有人知道如何写一个能像我想的那样工作的密码语句吗

谢谢你回答一个问题 以下查询返回所有连接的
export:true
节点对,这些节点对由0个或多个节点分隔,这些节点都包含
export:false

MATCH p=(a { export:true })-[*]->(b { export:true })
WHERE
  LENGTH(p) = 1 OR
  ALL (x IN NODES(p)[1..LENGTH(p)-1] WHERE NOT x.export)
RETURN a, b;
注意:
LENGTH(p)
返回路径
p
中的关系数

答复B
答案A
实际上可以通过删除
长度(p)=1
测试来简化:

MATCH p=(a { export:true })-[*]->(b { export:true })
WHERE ALL (x IN NODES(p)[1..LENGTH(p)-1] WHERE NOT x.export)
RETURN a, b;
但是,为什么这个简化的查询也有效,需要更多的解释。如果
长度(p)
为1,则:

  • 节点(p)[1..0]
    导致
    []
    ,以及
  • ALL(x在[]中,其中…
    导致
    true
    (无论
    是什么)

  • 请发布您尝试的查询。您是否尝试编写一个查询,以查找哪些节点在导出位置连接:true,通过导出位置连接的项目:false?谢谢,伙计们,我的问题已由cybersam解决。谢谢,cybersam。你的回答对我帮助很大。