
2.4.1 创建图数据
单击“电影关系图”实例引导页的右侧换页箭头,可以看到一些实例代码,其中包含多个带有CREATE关键字的Cypher语句。单击代码块,代码块将自动填入到命令行输入区。单击运行命令按钮,图数据就创建完成了。
下面将对这些创建语句进行分析说明,先不必完全弄懂这些命令,只需要了解它们的目的即可,关于这些Cypher语句的具体学习,在后续章节会有详细介绍。
【程序2-1】创建电影节点

上面的Cypher语句使用CREATE指令创建了一个Movie节点,这个节点上带有三个属性{title:'The Matrix', released:1999, tagline:'Welcome to the Real World'},分别表示这个电影的标题:The Matrix、发布时间:1999、宣传词:Welcome to the Real World。
上述Cypher语句运行后,将会在数据库中创建一个Movie节点,在数据库中的存储形态如图2-54所示。

图2-54 Movie节点
【程序2-2】创建人物节点

上面代码使用CREATE指令创建了一个Person节点,节点带有两个属性{name:'Keanu Reeves',born:1964}。
在后续的6行代码中都使用了同样的CREATE指令,分别创建了人物:Carrie、Laurence、Hugo、LillyW、LanaW和JoelS。
【程序2-3】创建演员、导演关系

上面代码中除了使用CREATE指令外,还使用了箭头运算符,如:(Keanu)-[:ACTED_IN{roles:['Neo']}]->(TheMatrix),这一行的意思是创建一个演员参演电影的关系,演员Keanu以角色roles:['Neo']参演([:ACTED_IN])到电影TheMatrix中。代码前4行都是创建演员参演电影关系的指令。
第5行指令:(LillyW)-[:DIRECTED]->(TheMatrix),意思是创建导演与电影的关系,即LillyW导演了([:DIRECTED])电影TheMatrix。
上面的指令运行完后,数据库中会有如图2-55所示的存储形态。

图2-55 导演、电影关系图
这样数据库中一个电影、演员、导演、制片商的关系就创建出来了。在后面的代码中用了同样的指令分别创建了电影:The Matrix Revolutions、The Devil’s Advocate、A Few Good Men、Top Gun、Jerry Maguire等,然后又创建了与这些电影相关的演员、导演、制片商及其他们之间的关系。
通过上述的创建指令就完成创建“电影关系图”实例了。