Cypher语句样例


插入节点。插入一个Person类别的节点,且这个节点有一个属性name,属性值为Andres
CREATE(n:Person { name : 'Andres'});
 
插入边。插入一条a到b的有向边,且边的类别为Follow
MATCH(a:Person),(b:Person)
WHEREa.name = 'Node A' AND b.name = 'Node B'
CREATE(a)-[r:Follow]->(b);
 
新增边:
startn1=node(3),n2=node(5) CREATE n1-[:Follow]->n2;
startn1=node(4),n2=node(6) createn1<-[:SAME{CT:'AT000006',DS:'143',TM:'1521742574',BDATE:'1014912000',EDATE:'1107014400'}]-n2;
 
新增属性:
startn1=node(4),n2=node(3) match n1-[r]-n2 set r.BDATE='1093968000';
 
map中添加属性:
MATCH(peter{name:'Peter'})
SET peter +={hungry:TRUE,position:'Entrepreneur'}
当用map来设置属性时,可以使用+=形式的SET,用于只添加属性,而不删除图元素中已存在的属性。
 
新增索引

 
 设置节点的多个标签
MATCH(n{name:'Stefan'})
SET n:German:Bossman:Swedish
RETURN n
 

更新节点。更新一个Person类别的节点,设置新的name。
MATCH(n:Person { name: 'Andres' })
SETn.name = 'Taylor';
 
删除节点和与其相连的边。Neo4j中如果一个节点有边相连,是不能单单删除这个节点的。
MATCH(n:Person { name:'Andres' })
DETACHDELETE n;
 
修改边的type
Match ()-[r:SAME]-() create ()-[r2:`473`]-() set r2=r with r delete r
 
 
删除边。
MATCH(a:Person)-[r:Follow]->(b:Person)
WHEREa.name = 'Andres' AND b.name = 'Taylor'
DELETEr;
 
删除边
startn1=node(3),n2=node(5) MATCH (n1)-[r]->(n2) DELETE r;
 
删除属性:
startn1=node(6),n2=node(5) match p=n1-[r]-n2
remover.name
return p
 
set语句删除属性:
startn1=node(6),n2=node(5) match p=n1-[r]-n2
set r.name=null
return p
 
删除一个节点及其所有的关系
MATCH(n{name:'Andres'})
DETACH DELETEn
 
删除节点的多个标签
MATCH(n{name:'Peter'})
REMOVEn:German:Swedish
RETURN n
  

最短路径。
MATCH(ms:Person { name:'Andres' }),(cs:Person { name:'Taylor' }), p =shortestPath((ms)-[r:Follow]-(cs)) RETURN p;
 
查询两个节点之间的关系。
MATCH(a:Person { name:'Andres' })-[r]->(b:Person { name:'Taylor' })
RETURNtype(r);
 
查询一个节点的所有Follower。
MATCH(:Person { name:'Taylor' })-[r:Follow]->(Person)
RETURNPerson.name;
 
查询具有指定Lable的节点
match(n:Movie) return n;
 
查询具有指定属性的节点
match(n{name:'TOM'})return n;
 
查询相关节点

STARTn=node(0) MATCH (n)-[r]-(x) RETURN n.name,type(r),x.name limit 2

你可能感兴趣的:(Neo4j)