如何解决考虑到模式和关系,编写查询以获取 Abiodun 的二级朋友的问题
作为一个新手,我正在尝试编写一个密码查询,考虑到模式和关系,该查询将获取 Abiodun(节点)的二级朋友。
初始代码
1) CREATE (abiodun:Person {name:"Abiodun"})
RETURN abiodun
2) MATCH (abiodun:Person {name:"Abiodun"})
CREATE (abiodun)-[like:LIKE]->(neo:Database {name:"Neo4j" })
RETURN abiodun,like,neo
3)MATCH (abiodun:Person {name:"Abiodun"})
FOREACH (name in ["Rajesh","Anna","Julia","Andrew"] |
CREATE (abiodun)-[:FRIEND]->(:Person {name:name}))
4)MATCH (neo:Database {name:"Neo4j"})
MATCH (anna:Person {name:"Anna"})
CREATE (anna)-[:FRIEND]->(:Person:Expert {name:"Amanda"})-[:WORKED_WITH]->(neo) here
实际问题(到目前为止我做了什么
MATCH (abiodun) WHERE not ((abiodun)-[:FRIEND]->(myFriends))
RETURN n
解决方法
您可以使用从 Abiodun 到 Amanda 的固定长度关系。 关系中“*2”的意思是“给我一个Abiodun的朋友的朋友”。
MATCH (:Person {name: "Abiodun"}) - [:FRIEND*2] -> (p:Person)
RETURN p
可在此处找到详细信息:https://neo4j.com/docs/cypher-manual/current/clauses/match/#varlength-rels
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。