密码:匹配具有相反方向的多种关系类型



新手问题...我正在尝试与Cypher建立多种关系。我在文档中找到了一个几乎是我想要的示例:

MATCH (wallstreet { title: 'Wall Street' })<-[:ACTED_IN|:DIRECTED]-(person)
RETURN person.name

就我而言,关系朝着相反的方向发展。

CREATE
(a:Entity { name: 'Entity A'),  
(b:Person { name: 'Person B'),  
(c: Entity { name: 'Entity C'),  
(c)-[:ALIAS_OF]->(b),  
(b)-[:MEMBER_OF]->(a)  

我想找到人员 B 所属的每个实体或ALIAS_OF人员 B 的实体,然后找到由这些实体中的任何一个生产的产品

MATCH (b:Person { name: 'Person B'}),
(entities:Entity)<-[:ALIAS_OF|MEMBER_OF]-(b),
(products:Product)-[:PRODUCED_BY]->(entities)
RETURN b, entities, products

这只会找到 b 是其成员的实体,因为别名关系会朝另一个方向发展。如何适应这种情况?这是否表明我应该以同样的方式构建关系?谢谢!

如果你不在乎关系的方向,箭头 头可以省略...

https://neo4j.com/docs/developer-manual/current/cypher/syntax/patterns/#cypher-pattern-relationship

MATCH (b:Person { name: 'Person B'})-[:ALIAS_OF|MEMBER_OF]-(entities:Entity),
(products:Product)-[:PRODUCED_BY]->(entities)
RETURN b, entities, products

最新更新