Skip to content

baopu00/Neo4j

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Neo4j

1.增

  • 1.1 创建节点
    create (n:"人物"{name:"特朗普","职位":"总统"}) return n

  • 1.2 创建节点间关系
    match(n1:"人物"{name:"特朗普"}),(n2{name:"拿破仑"})
    create (n1)-[r:"弱相关]-(n2) return r

  • 1.3 创建节点关系和属性
    match(n1:"人物"{name:"特朗普"}),(n2{name:"伊万卡"})
    *create (n1)-[r:"弱相关{name:"父女"}]-(n2) return r

  • 1.4 创建完整路径
    create (n1:"人物"{name:"特朗普"})-[r:"弱相关"{name:"父女"]-(n2:"人物"{name:"伊万卡"})
    return n1,n2,r

2.删

  • 2.1 删除所有节点与关系——delete
    根据属性删除单个节点:
    match(n:"人物"{name:"特朗普"}) delete n
    根据属性删除单个关系:
    match(n1:"人物{name:"特朗普"})-[r:"强相关"]-(n2) where n2.name="拿破仑 delete r
    根据id删除节点:
    match(n) where id(n)=2134 delete n
    根据id删除节点关系:

    match(n)-[r]-() where id(r)=1234 delete r
    删除某一类关系:
    match(n)-[r:"强相关"]-() delete r

  • 2.2 删除标签与属性——remove
    删除单节点的某个属性:
    match(n{name:"特朗普"}) remove n."职位" return n
    删除节点的标签:
    match(n{name:"特朗普"}) remove n:"人物" return n
    删除多重的标签:
    match(n{name:"特朗普"}) remove n:"人物":"Person" return n

  • 2.3 重设为NULL——set
    删除属性: match(n{name:"特朗普"}) set n."职位"=NULL return n

3.改

  • 3.1 改节点标签和属性
    加额外标签:
    match (n) where id(n)=127 set n:"Person" return n
    加额外属性:
    match (n) where id(n)=128 set n.age = "12" return n
    加多个属性:
    match (n) where id(n)=128 set n.age = "12",n."职位" = "学生" return n

4.查

  • 4.1 查节点和关系
    查节点:
    match(n:"人物"{name:"特朗普") return n
    或者 match(n:"人物") where n.name = "特朗普" return n
    限制显示条数:
    match(n:"人物") return n limit 20
    查关系:
    match(n1{name:"特朗普"})-[r]-(n2) return r
    查关系限制标签:
    match(n1{name:"特朗普"})-[r:"强相关"]-(n2) return r
    查询关系属性和类型:
    match (p1:"人物"{ name:"特朗普})-[r]->(p2) return r,type(r)

  • 4.2 集合函数查询

    通过id函数,返回节点或关系的ID
    MATCH (:Person { name: 'Oliver Stone' })-[r]->(movie)
    RETURN id(r);

    通过type函数,查询关系的类型
    MATCH (:Person { name: 'Oliver Stone' })-[r]->(movie)
    RETURN type(r);

    通过lables函数,查询节点的标签
    MATCH (:Person { name: 'Oliver Stone' })-[r]->(movie)
    RETURN lables(movie);

    通过keys函数,查看节点或关系的属性键
    MATCH (a)
    WHERE a.name = 'Alice'
    RETURN keys(a)

    通过properties()函数,查看节点或关系的属性
    CREATE (p:Person { name: 'Stefan', city: 'Berlin' })
    RETURN properties(p)

    nodes(path):返回path中节点
    match p=(a)-->(b)-->(c) where a.name='Alice' and c.name='Eskil' return nodes(p)

    relationships(path):返回path中的关系
    match p=(a)-->(b)-->(c) where a.name='Alice' and c.name='Eskil' return relationships(p)

  • 4.3 路径查询:
    常规路径查询:
    match (:"人物"{name:"特朗普"})->(p) return p

    可变长路径查询:
    match (:"人物"{name:"特朗普"})->[r*1..4]->(p) return r,p #距离为1到4

    最短路径查询:
    match path = shortestPath( (p1:"人物"{name:"特朗普"})->[r*1..4]->(p2)
    where p2.name="拿破仑"
    return path,length(path)

补充: 添加删除label match (n) where id(n)=27 set n:核电站 return n match (n) where id(n)=27 remove n:核电站 return n 参考: https://blog.csdn.net/sinat_26917383/article/details/79883503 https://blog.csdn.net/qq_40036754/article/details/88605030

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published