Neo4j经常使用的查询

1、添加操做ip

  1. 添加节点:it

    create (x:学生{studentId:'1001',age:20}io

  2. 添加关系:im

    对现有的节点添加关系数据

      match (x:学生{studentId:1001}),(y:教师{tid:'09'}) create (x)-[jx:课程{name:'高数'}]->(y)查询

    添加节点并添加关系db

      create (x:学生{studentId:1001})-[jx:课程{name:'高数'}]->(y:教师{tid:'09'}) 标签

2、删除操做co

  1. 删除节点:let

    match (x:学生{studentId:1001}) delete x

  2. 删除关系:

    match (x:学生{studentId:1001})-[jx:课程{name:'高数'}]->(y:教师{tid:'09'})  delete jx

  3. 删除关系的同时,删除数据:

    match (x:学生{studentId:1001})-[jx:课程{name:'高数'}]->(y:教师{tid:'09'})  delete x,jx,y

3、修改节点

  1. 给节点添加一个新的属性,两种方式:

    match(x:学生{studentId:'1001'}) set x.age=21 return x

    match(x:学生{studentId:'1001'}) set x+={age:21} return x

  2. 给节点添加属性并删除现有属性

    match(x:学生{studentId:'1001'}) set x={age:21,name:'abc'} //注意这里,会将studentId属性删除

  3. 添加新标签:

    match(x:学生{studentId:'1001'}) set x:男生 return x  //添加一个标签

    match(x:学生{studentId:'1001'}) set x:男生:团员 return x  //添加多个标签

4、查询操做

  1. 根据节点属性查找对应节点:

    match(x:Student{studentId:'1001'}) return x

    或者

    match(x:Student) where x.studentId='1001' return x

  2. 根据关系查找节点

    match (x)-[r:教学内容]-(y) where r.课程='语文' return x,r,y

  3. 查询单独的节点,即:与其余任何节点没有任何关系

    match(x) where not (x)-[]-() return x

  4. 查询N层关系的节点:

    match q=(x)-[*5..8]-() return q limit 200 这个为查询5到8层关系的

    match q=(dh)-[r]-(jq)-[rr]-()-[]-()-[]-()-[]-()-[]-()-[]-() return q limit 400

  5. 查询节点关系数个数:

    match(dh:`学生`)-[r]-(jq:`老师`) with dh, count(r) as dhs where dhs > 2 return dh

  6. 查询节点个数:

    match(x) return count(x)

  7. 查询全部的关系类型:

    CALL db.relationshipTypes()

  8. 查询全部的节点标签:

    CALL db.labels()

   9. 查询节点关系种类:

    CALL db.schema()

  暂时先写这么多吧,想起来了再添加

相关文章
相关标签/搜索