密码查询之间的区别。 (neo4j 电影数据库)

Difference between Cypher Queries. (neo4j movie db)

我正在做 :play intro-neo4j-exercises 中的练习(练习 4.10)。 一切似乎都很好,但我无法准确理解这两个查询之间的区别。有人可以详细说明吗?

MATCH path =  (p:Person)-[:PRODUCED]->(m:Movie) 
WHERE NOT EXISTS( (p)-[:DIRECTED]->(:Movie) )
RETURN p.name, m.title

Returns:

|"a.name"      │"m.title"               │
╞══════════════╪════════════════════════╡
│"Joel Silver" │"The Matrix"            │
├──────────────┼────────────────────────┤
│"Joel Silver" │"The Matrix Reloaded"   │
├──────────────┼────────────────────────┤
│"Joel Silver" │"The Matrix Revolutions"│
├──────────────┼────────────────────────┤
│"Stefan Arndt"│"Cloud Atlas"           │
├──────────────┼────────────────────────┤
│"Joel Silver" │"V for Vendetta"        │
├──────────────┼────────────────────────┤
│"Joel Silver" │"Speed Racer"           │
├──────────────┼────────────────────────┤
│"Joel Silver" │"Ninja Assassin"        │
└──────────────┴────────────────────────┘

同时:

MATCH (p:Person)-[:PRODUCED]->(m:Movie)
WHERE NOT EXISTS( (p)-[:DIRECTED]->(m) )
RETURN p.name, m.title

RETURNS:

╒═════════════════╤════════════════════════╕
│"a.name"         │"m.title"               │
╞═════════════════╪════════════════════════╡
│"Joel Silver"    │"The Matrix"            │
├─────────────────┼────────────────────────┤
│"Joel Silver"    │"The Matrix Reloaded"   │
├─────────────────┼────────────────────────┤
│"Joel Silver"    │"The Matrix Revolutions"│
├─────────────────┼────────────────────────┤
│"Nora Ephron"    │"When Harry Met Sally"  │
├─────────────────┼────────────────────────┤
│"Stefan Arndt"   │"Cloud Atlas"           │
├─────────────────┼────────────────────────┤
│"Lana Wachowski" │"V for Vendetta"        │
├─────────────────┼────────────────────────┤
│"Lilly Wachowski"│"V for Vendetta"        │
├─────────────────┼────────────────────────┤
│"Joel Silver"    │"V for Vendetta"        │
├─────────────────┼────────────────────────┤
│"Joel Silver"    │"Speed Racer"           │
├─────────────────┼────────────────────────┤
│"Lana Wachowski" │"Ninja Assassin"        │
├─────────────────┼────────────────────────┤
│"Joel Silver"    │"Ninja Assassin"        │
├─────────────────┼────────────────────────┤
│"Lilly Wachowski"│"Ninja Assassin"        │
└─────────────────┴────────────────────────┘

第一个查询找到 Person PRODUCED Movie m,但没有导演 任何 电影。第二个查询找到 Persons who PRODUCED the Movie m but did not direct that particular Movie m。您知道这一点是因为在第二个查询中,WHERE 子句中使用了绑定变量 m,而在第一个查询中,[=18= 中仅使用了标签 :Movie ] 条款。

顺便说一下,第一个查询的 path = 部分什么都不做。