1.查询
简单查询
查询10个Person节点
match (n:Person) return n limit 10
查询Person节点与Phone节点中有HAS_PHONE关系
match (n:Person)-[:HAS_PHONE]->(p:Phone) return n,p
查询10条关系:Person节点与Phone节点中有HAS_PHONE关系,且Person节点的name=‘姓名6’
match (n:Person)-[:HAS_PHONE]->(p:Phone) where n.name="姓名6" return n,p limit 20
多维度查询
查询以下关系:Person节点n和Phone节点p1拥有HAS_PHONE关系,且p1节点与另一个Phone节点p2拥有CALL关系
match (n:Person)-[:HAS_PHONE]->(p1:Phone)-[:CALL]->(p2:Phone)
关系查询
查询任意节点与任意节点间有CALL关系的关系
match p=()-[:CALL]->()
正则查询
查询Users所有节点中,name符合正则’Jack.*'的节点
match (n:Users) where n.name=~'Jack.*' return n
包含查询
查询Users所有节点中,name中包含’J’的节点
match (n:Users) where n.name contains 'J' return n
2.创建
简单创建
创建一个Person-LOVES->Dog的关系
create (n:Person)-[:LOVES]->(m:Dog)
属性创建
创建Person-FEAR->Tiger的关系,且Person.name=‘李四’,FEAR.Level=1,Tiger.type=‘东北虎’
create (n:Person{name:"李四"})-[:FEAR(Level:1)]->(M:Tiger{type:"东北虎"})
给两个没有关系的实体创建关系
创建一个关系k,使得name=“王五”的Person与name:"赵六"的Person有KNOW的关系
match (n:Person{name:"王五"}), (m:Person{name:"赵六"})
create (n)-[k:KNOW]->(m) return k
有则返回,没有则创建:merge
如果创建的关系已存在,则返回该关系,如果创建的关系不存在,则创建
match (n:Person{name:"王五"}), (m:Person{name:"赵六"})
merge (n)-[k:KNOW]->(m) return k
3.删除
删除关系
删除name="李四"的Person节点与Tiger节点间的FEAR关系
match (n:Person{name:"李四"})-[f:FEAR]->(M:Tiger)
delete f
删除实体
删除name="李四"的Person节点
match (n:Person{name:"李四"})
delete n
删除重复节点
如果有多个name=“张三”的People节点,删除只保留一个
match (p:People{name:"张三"}) with p skip 1 delete p
4.修改
修改属性
给type="东北虎"的Tiger节点插入age标签,且age的属性为10
match (t:Tiger) where t.type="东北虎" set t.age=10 return t
修改关系名称
将HAS_Phone修改为HAS_PHONE
match (a)-[h:HAS_Phone]->(b)
create (a)-[h2:HAS_PHONE]->(b)
set h2=h
with h
delete h
5.创建唯一索引
给Phone节点创建唯一索引number
CREATE CONSTRAINT ON (p:Phone) ASSERT p.number IS UNIQUE