Neo4j基本语句

  • 创建节点【create】

    节点不存在时,创建,存在时,忽略

     merge(n:洛杉矶湖人)
    

    不论节点是否存在,创建

    create(n:洛杉矶湖人)
    

    note:节点的id由neo4j自动分配,且按序列值递增

  • 修改节点属性

    (1)查询id=21798的节点

    match(n) where ID(n) = 21798 return n
    

    错误示例 match(n) where n.id = 21798 return n

    (2)给节点添加属性,label:节点标签名、height:身高、position:场上位置

    match(n) where ID(n) = 21798 set n.label='科比',n.height=198,n.position='得分后卫' return n
    

    sql语句示例:update n set label = ‘科比’,height=198,position='得分后卫' where id = 21798

    note

    neo4j查询节点用:match == 相当于关系型数据库的select,相当于非关系数据库mongodb的find

    neo4j修改节点属性用:set == 相当于关系型数据库的update…set…

    区别:关系型数据库如果字段不存在的话会报错,而NoSql数据库neo4j,如果属性字段不存在的话,就添加

    (3)删除节点身高属性

    match(n) where ID(n) = 21798 remove n.height return n
    

    (4)模糊查询,查询属性值label开头是“科”其余任意值的节点信息

    match(n) where n.label=~'科*.' return n
    
  • 创建带属性的节点

    create(n:洛杉矶湖人{label:'奥尼尔',height:216,position:'中锋'}) return n
    

    错误示例:create(n:洛杉矶湖人{'label':'奥尼尔','height':216,'position':'中锋'}) return n

  • 删除节点

    (1)查找所有与湖人队有关的节点

    match(n:洛杉矶湖人) return n
    

    (2)删除节点

    match(n:洛杉矶湖人) where ID(n) = 21836 delete n
    

    note:neo4j中不管是删除节点还是删除关系,都是用delete命令进行删除。并且,删除哪个节点必须先用match匹配

  • 创建关系

    创建统一用create命令,而关系的创建,实际上和创建节点差不多,唯一区别就是,关系是有方向的,而且关系用‘[]’表示,而节点用’()'表示。
    给节点科比和奥尼尔创建一条关系,关系的name叫“搭档”,这种关系,不区分方向,因此,无所谓谁是startNode,谁是endNode。

    match(n),(b) where n.label='科比' and b.label='奥尼尔'
    create(n)-[r:搭档{since:1996,des:'NBA史上最强OK组合',champion:3}]->(b) 
    return n,r,b
    

    以上代码段,首先匹配找到节点n和b,也就是科比和奥尼尔代表的节点Node;然后创建节点n到节点b的关系r,r有三个属性,一个是从哪一年开始since,一个是关系描述des,另一个是合作拿过的冠军数量champion;最后返回n,r,b 完整节点之间的关系结果。

  • 查询关系

    match(n)-[r]-(b) where n.label='科比' and b.label='奥尼尔‘
    return n,r,b
    
  • 修改关系属性

    修改关系的属性也用set,如修改id等于12513的关系的属性des为“小飞侠&大鲨鱼”。

    match(n)-[r]-(b) where ID(r) = 12513 set r.des='小飞侠&大鲨鱼'
    return n,r,b
    
  • 删除节点关系

    删除节点科比和奥尼尔之间的关系

    match(n)-[r]-(b) where n.label='科比' and b.label='奥尼尔'
    delete r
    return r
    
  • 创建索引

    为节点“洛杉矶湖人”基于属性“label”创建索引

    create index on:洛杉矶湖人(label)
    
  • 删除索引

    drop index on:洛杉矶湖人(label)
    
  • 总结

结合表达式: match(n)-[r] -(b)
如果查询节点n —— return n
如果查询关系r —— return r
如果查询节点b —— return b
如果查询节点n和b之间的关系r —— return n,r,b
如果查询带条件 —— where n.x = x,r.xx = xx,b.xxx = xxx
如果修改属性 —— where.....   set ....
如果删除属性 —— where.....   remove .....
如果删除节点或关系 —— where...delete n 或 delete r  或 delete b 或 delete n , r , b

参考链接:https://blog.csdn.net/Appleyk/article/details/80402519

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值