【问题标题】:Difference between Cypher Queries. (neo4j movie db)密码查询之间的区别。 (neo4j 电影数据库)
【发布时间】:2020-11-02 22:27:30
【问题描述】:

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

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

返回:

|"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

返回:

╒═════════════════╤════════════════════════╕
│"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"        │
└─────────────────┴────────────────────────┘

【问题讨论】:

    标签: neo4j cypher graph-databases


    【解决方案1】:

    第一个查询找到PRODUCEDPersons 和Movie m,但没有导演任何电影。第二个查询查找Persons 和PRODUCEDMovie m,但没有指定特定 Movie m。您知道这一点,因为在第二个查询中,WHERE 子句中使用了绑定变量 m,而在第一个查询中,WHERE 子句中仅使用了标签 :Movie

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

    【讨论】:

      猜你喜欢
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 2022-11-04
      • 2022-07-23
      • 1970-01-01
      • 2014-07-09
      相关资源
      最近更新 更多