任何数据库基础的都是增删改查四种功能,而Neo4j使用的Cypher语言一样如此。Cypher是一种很好处理图数据库的语言,下面就从几个基本功能来学习他的基本用法。就以我们做的电影智能问答系统来做示范。
一 创建节点
创建节点有两种方式,一种是create方式,一种是用merge方式。其中用create创建是不管这个节点有没有都进行创建,而merge是如果节点存在则不再创建。
1 //merge方式,创建唯一节点 2 merge(n:教父) 3 4 //create方式,无论有没有都进行创建节点 5 create(n:教父)(被create创建了两次的节点,他们的id值是被Neo4j自动分配而且递增的)此时创建的节点除了id属性没有其他的属性。
二 增删改节点属性
(1)查找到相应节点并返回
1 //注意不要忘记返回节点 2 match(n) where ID(n) = 3272 return n(2)给相应节点添加属性
1 //给该Node添加三个属性,分别是label(节点标签名),releasedate(上映日期),introduction(电影介绍) 2 match(n) where ID(n) = 3272 set n.label='教父',n.releasedate='1991-03-21',n.introduction='教父很好看' return nneo4j查询节点用:match 相当于关系型数据库的select,相当于非关系数据库mongodb的find
neo4j修改节点属性用:set 相当于关系型数据库的update...set...
(在Neo4j中如果设置不存在的属性会自动新建该属性)
(3)删除节点的属性
1 //删除电影的上映日期属性 2 match(n) where ID(n) = 3272 remove n.releasedate return n(4)创建带属性的节点
1 create(n:Movie{label:'教父',n.releasedate='1991-03-21',n.introduction='教父很好看'}) return n
三 模糊查询
查询属性值label开头是“教”其余任意值的节点信息
match(n) where n.label=~'教*.' return n
四 删除相应节点
删除节点中对应标签的节点
match(n:Movie) where ID(n) = 3257 delete n
五 关系
1.创建关系
关系不能独自存在,必须有两个或两个以上的节点才可以。而创建统一用create命令,而关系的创建,实际上和创建节点差不多,唯一区别就是,关系是有方向的,而且关系用‘[]’表示,而节点用'()'表示。如:
match(n),(b) where n.label='李连杰' and b.label='少林寺'create(n)-[r:actedin{since:1991,champion:3}]->(b) return n,r,b(1)、首先匹配找到节点n和b,也就是李连杰和少林寺代表的节点Node
(2)、然后创建节点n到节点b的关系r,r有两个属性,一个是时间since,另一个是拿过的奖项数量champion
(3)、最后返回n,r,b 完整节点之间的关系结果,table数据有三列。
2. 修改关系属性
match(n)-[r]-(b) where ID(r) = 12513 set r.since='1990-09-09'return n,r,b3. 删除关系
match(n)-[r]-(b) where n.label='李连杰' and b.label='少林寺' delete r return r
以上就是Cypher语言的基本用法。
本文部分引用“https://blog.csdn.net/appleyk/article/details/80402519”
转载于:https://www.cnblogs.com/Mask-D/p/9268944.html
相关资源:JAVA上百实例源码以及开源项目