如果是分开创建的话,创建关系的语句应该是如下所示:
-- Tom Hanks在电影Forrest Gump中出演Forrest角色 MATCH (tom:Person{name:"Tom Hanks"}),(forrestGump:Movie{title:"Forrest Gump"}) CREATE (tom)-[:ACTED_IN { roles: ["Forrest"]}]->(forrestGump) -- Tom Hanks在电影Forrest Gump中出演Forrest角色 MATCH (tom:Person{name:"Tom Hanks"}),(cloudAtlas:Movie{title:"Cloud Atlas"}) CREATE (tom)-[:ACTED_IN { roles: ['Zachry']}]->(cloudAtlas) -- jerry 在电影 The Matrix 出演 Jerry角色 MATCH (jerry:Person{name:"Jerry"}),(matrix:Movie{title:"The Matrix"}) CREATE (jerry)-[:ACTED_IN { roles: ["J"]}]->(matrix) -- Robert Zemeckis指导电影Forrest Gump MATCH (robert:Person{name:"Robert Zemeckis"}),(forrestGump:Movie{title:"Forrest Gump"}) CREATE (robert)-[:DIRECTED]->(forrestGump) 过滤查询 查询所有节点 MATCH (nodes) return nodes结果:
╒════════════════════════════════════════╕ │"nodes" │ ╞════════════════════════════════════════╡ │{"title":"The Matrix","released":1997} │ ├────────────────────────────────────────┤ │{"title":"Cloud Atlas","released":2012} │ ├────────────────────────────────────────┤ │{"title":"Forrest Gump","released":1994}│ ├────────────────────────────────────────┤ │{"name":"Keanu Reeves","born":1964} │ ├────────────────────────────────────────┤ │{"name":"Robert Zemeckis","born":1951} │ ├────────────────────────────────────────┤ │{"name":"Tom Hanks","born":1956} │ └────────────────────────────────────────┘ 查询标签是Movie的节点 MATCH (m:Movie) return m结果:
╒════════════════════════════════════════╕ │"m" │ ╞════════════════════════════════════════╡ │{"title":"The Matrix","released":1997} │ ├────────────────────────────────────────┤ │{"title":"Cloud Atlas","released":2012} │ ├────────────────────────────────────────┤ │{"title":"Forrest Gump","released":1994}│ └────────────────────────────────────────┘ 根据标题查询 -- 查询标题是The Matrix的节点 MATCH (m:Movie) WHERE m.title = "The Matrix" RETURN m结果:
╒══════════════════════════════════════╕ │"m" │ ╞══════════════════════════════════════╡ │{"title":"The Matrix","released":1997}│ └──────────────────────────────────────┘ 多个条件查询 -- 条件查询 和SQL语句一样 MATCH (p:Person)-[r:ACTED_IN]->(m:Movie) WHERE p.name =~ "K.+" OR m.released > 2000 OR "Neo" IN r.roles RETURN p,r,m结果:
╒═════════════════════════════════════════════════════════════════════════════════════════════╕ │"p" │"r" │"m" │ ╞═════════════════════════════════════════════════════════════════════════════════════════════╡ │{"name":"Tom Hanks","born":1956}│{"roles":["Zachry"]}│{"title":"Cloud Atlas","released":2012}│ └─────────────────────────────────────────────────────────────────────────────────────────────┘ 删除 删除所有节点和所有关系 MATCH (r) DETACH DELETE r 根据ID删除节点及所有关系 MATCH (r) WHERE id(r) = 493 DETACH DELETE r 结果增加列