Neo4j 查找节点中的现有关系
我正在开发一个测试应用程序,它可以销售ppl在线阅读书籍Neo4j 查找节点中的现有关系,neo4j,cypher,Neo4j,Cypher,我正在开发一个测试应用程序,它可以销售ppl在线阅读书籍 Match (books: Book)<-[:Likes]-(ppl:Reader) Match(books:Book)我自己找到了答案。但我不太确定这是正确的做法 MATCH (book:Book),(group1:Reader),(group2:Reader) MATCH (book)<-[:Likes]-(group1) MATCH (book)<-[:Likes]-(group2) MATCH (group
Match (books: Book)<-[:Likes]-(ppl:Reader)
Match(books:Book)我自己找到了答案。但我不太确定这是正确的做法
MATCH (book:Book),(group1:Reader),(group2:Reader)
MATCH (book)<-[:Likes]-(group1)
MATCH (book)<-[:Likes]-(group2)
MATCH (group1)-[r]-(group2)
RETURN group1.Name, type(r), group2.Name
匹配(book:book),(组1:Reader),(组2:Reader)
匹配(book)我假设这里只有两个节点标签:book
和Reader
,并且Reader
是个人。在这种情况下,你可能应该称之为人
,而事实上,他们阅读一本书或喜欢一本书是关系的本质
您最初的查询是正确的,但您没有使用关系
从你的问题上我还不清楚,但我看到你在试图寻找人与人之间的关系。这应该能让你得到你想要的
MATCH (p1:Person)-[:LIKES]->(book:Book)<-[:LIKES]-(p2:Person)
OPTIONAL MATCH (p1)-[r]->(p2)
RETURN p1, r, p2
MATCH(p1:Person)-[:LIKES]->(book:book)(p2)
返回p1、r、p2
Ur第二次查询将以行形式返回所有读卡器名称。但我对倾听读者之间的关系很感兴趣。更新-下次不要这么快就投反对票。你问什么并不总是很清楚。