【发布时间】:2020-05-02 07:10:44
【问题描述】:
我想找到没有与 Hugo Weaving 一起演戏但与他的合作演员一起演戏的演员,并为这些演员设置一个没有价值的财产行为。
到目前为止我所做的是:
Match (p: Person), (other: Person), (m: Movie)
where (NOT (:Person {name:'Hugo Weaving'})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(p))
AND (p)- [:ACTED_IN]->(m)<-[:ACTED_IN]-(other)
set other.act = 'didnot'
return distinct other
这给了我结果(前 5 行)。:
╒══════════════════════════════╕
│"other" │
╞══════════════════════════════╡
│{"act":"didnot","born":1964,"n│
│ame":"Keanu Reeves"} │
├──────────────────────────────┤
│{"act":"didnot","born":1967,"n│
│ame":"Carrie-Anne Moss"} │
├──────────────────────────────┤
│{"act":"didnot","born":1961,"n│
│ame":"Laurence Fishburne"} │
├──────────────────────────────┤
│{"act":"didnot","born":1978,"n│
│ame":"Emil Eifrem"} │
├──────────────────────────────┤
│{"act":"didnot","born":1975,"n│
│ame":"Charlize Theron"} │
结果不正确,而且查询看起来效率低下。我究竟做错了什么? 任何对正确方向的见解都将受到高度赞赏。谢谢。
【问题讨论】: