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。你的回答对我帮助很大。