基础用法
js
CREATE (product:Product {name: "珍珠奶茶"})
CREATE (type1:Type {name: "台式奶茶"})
CREATE (type2:Type {name: "港式奶茶"})
这里的 product、type1、type2 是变量名,不是标签。
标签是冒号后面的 Product、Type。
变量名前面不需要加冒号,只有标签才需要冒号。
这种写法完全合法。变量名之后会被忽略(因为没有在后续语句中使用),
所以写成匿名节点 (:Product {name: "珍珠奶茶"}) 也是可以的。
因此,没有问题。
js
第二段
CREATE (:Person:Actor {name: 'Tom Hanks', born: 1956})
-[:ACTED_IN {roles: ['Forrest']}]->
(:Movie {title: 'Forrest Gump', released: 1994})
<-[:DIRECTED]-
(:Person {name: 'Robert Zemeckis', born: 1951})
这是一条 CREATE 语句,同时创建节点和关系,语法完全正确。
节点 :Person:Actor 表示同时拥有 Person 和 Actor 两个标签,
这是多标签写法,允许。
关系 ACTED_IN 带属性 roles,值为字符串数组,也正确。
方向:
Tom Hanks ---[ACTED_IN]→ Forrest Gump ←[DIRECTED]--- Robert Zemeckis,符合逻辑,语法也正确。
整体链式写法在 Cypher 中是被支持的,没有问题。