当前位置: 首页 > news >正文

建设网站怎么建设分类湖南网络推广排名

建设网站怎么建设分类,湖南网络推广排名,wordpress 文章与页面,工程公司名称大全简单大气文章目录 Cypher入门创建数据查询数据matchoptional matchwhere分页with 更新数据删除数据实例:好友推荐 Cypher入门 Cypher是Neo4j的查询语言。 创建数据 在Neo4j中使用create命令创建节点、关系、属性数据。 create (n {name:$value}) return n //创建节点&am…

文章目录

  • Cypher入门
    • 创建数据
    • 查询数据
      • match
      • optional match
      • where
      • 分页
      • with
    • 更新数据
    • 删除数据
    • 实例:好友推荐

Cypher入门

  • Cypher是Neo4j的查询语言。

创建数据

  • 在Neo4j中使用create命令创建节点、关系、属性数据。
create (n {name:$value}) return n //创建节点,节点的属性是name,n为该节点的变量,创建完成后返回该节点

在这里插入图片描述

create (n:$Tag {name:$value}) //创建节点,指定标签

在这里插入图片描述

create (n)-[r:knows{name:$value}]->(m) //创建n指向m的关系,并且指定关系类型为:KNOWS

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查询数据

match

[match where] //条件查询
[option match where] //选择查询,查询不到使用null代替
[with [order by] [skip] [limit]] //查询的结果以管道的方式传递给下面的语句,聚合查询必须使用with
return [order by] [skip] [limit] //返回、排序、跳过、返回个数
  • MATCH 语句通过模式(Patter)来检家数据库。它常与带有约束或者断言的 WHERE语句一起使用,这使得匹配的模式更具体。断言是模式描述的一部分,不能看作是匹配结果的过滤器
  • MATCH 可以出现在查询的开始或者末尾,也可能位于 WITH 之后。如果它在语句开头,此时不会绑定任何数据。Neo4j将设计一个搜索去找到匹配这个语句以及 WHERE 中指定断言的结果。这将牵涉数据库的扫描,搜索特定标签的节点或者搜索一个索引以找到匹配模式的开始点,这个搜索找到的节点和关系可作为一个“绑定模式元素(Bound Patter Elements)”。它可以用于匹配一些子图的模式,也可以用于任何进一步的 MATCH 语句,
  • Neo4j 将使用这些已知的元系来找到更进一步的未知元素。
  • Cypher 是声明式的,因此查询本身不指定搜家的算法。Neo4i会自动地用最好的方法去找到开始节点和匹配模式。WHERE 中的断言可以在模式匹配之前、匹配中或者匹配后进行处理。这可以通过查询编译器来影响这个决定。

  • 创建查询语句需要的数据
    create (n:User {name:"张宇"})
    create (n)-[:sing]->(:Song {title:"月亮惹的祸"})
    create (n)-[:sing]->(:Song {title:"雨一直下"})
    create (n)-[:sing]->(:Song {title:"大女人"})
    create (n)-[:love]->(:User {name:"十一郎"})
    
  • 查询所有节点
    match (n) return n
    

在这里插入图片描述

  • 查询所有User节点
    match (n:User) return n
    

在这里插入图片描述

  • 查询所有与“张宇”有关系的节点
    match (n:User{name:"张宇"})--(m) return n,m
    

在这里插入图片描述

  • 查询所有与张宇演唱的歌曲
    match (n:User {name:"张宇"})-->(m:Song) return n,m
    

在这里插入图片描述

  • 将查询赋值与变量
    match p=(n:User {name:"张宇"})-->(m:Song) return p
    

在这里插入图片描述

  • 查询张宇与月亮惹的祸之间的关系
    match (n:User {name:"张宇"})-[r]->(m:Song {title:"月亮惹的祸"}) return type(r)
    

在这里插入图片描述

  • 指定关系标签查询
    match (n:User {name:"张宇"})-[:sing]->(m) return n,m
    

在这里插入图片描述

  • 指定多种关系标签查询
    match(n:User {name:"张宇"})-[:sing|:love]-> (m) return n,m
    

在这里插入图片描述

  • 在关系查询中指定关系的深度-[:TYPE*minHops..maxHops]->
    //查询有1~2层关系的节点
    match (n:Person {name:"Keanu Reeves"}) -[r:ACTED_IN*1..2]-(m) return n,m,r
    //查询有2层关系的节点
    match (n:Person {name:"Keanu Reeves"}) -[r:ACTED_IN*2]-(m) return n,m,r
    

在这里插入图片描述
在这里插入图片描述

  • 查询两个节点之间的深度为1~10的路径
    match (n:Person {name:"Keanu Reeves"}),(m:Person {name:"Danny DeVito"}),p = shortestPath((n)-[*1..10]-(m)) return p
    

在这里插入图片描述

  • 查询两个节点之间最短的路径
    match (n:Person {name:"Keanu Reeves"}),(m:Person {name:"Danny DeVito"}),p = shortestPath((n)-[*]-(m)) return p
    

在这里插入图片描述

optional match

  • OPTINAL MATCH 匹配模式,如果没有匹配到,OPTINAL MATCH 将用 null 作为未匹配到部分的值。OPTINAL MATCH 在 Cypher 中类似SQL 语句中的 outer join。要么匹配整个模式,要么都未匹配。
  • WHERE 是模式描述的一部分,匹配的时候就会考虑到 WHERE 语句中的断言,而不是匹配之后。这对于有多个(OPTINAL)MATCH 语句的查询尤其重要,一定要将属于 MATCH 的 WHERE 语句与 MATCH 放在一起。
    optional match (n:User {name:"张宇"})--(m:User {name:"十一郎"}) return n,m
    

在这里插入图片描述
在这里插入图片描述

where

  • WHERE 在 MATCH 或者 OPTINAL MATCH 语句中添加约束,或者与 WITH 一起使用来过滤结果。
  • WHERE 不能单独使用,它只能作为 MATCH、 OPTINAL MATCH、 START 和 WITH 的一部分。如果是在 WITH 和 START 中,它用于过滤结果。对于 MATCH 和 OPTINALMATCE, WHERE 为模式增加约束,它不能看作是匹配完成后的结果过滤。
  • 设置属性条件
    match (n:Song) where n.title='雨一直下' return n
    

在这里插入图片描述

  • 设置布尔条件
    match (n:Song) where n.title='雨一直下' or n.title='大女人' return n
    

在这里插入图片描述

  • 关系属性过滤
    match (n:Person) -[r:ACTED_IN]-> (m:Movie) where r.roles=['Neo'] return n,r,m 
    

在这里插入图片描述

  • 属性以xxx开头、包含xxx
    match (n:Person) where n.name starts with 'K' return n
    

在这里插入图片描述

match (n:Person) where n.name contains 'un' return n

在这里插入图片描述

  • 属性比较
    match (n:Person) where n.born >1980 return n
    match (n:Person) where n.born>1970 and n.born >1990 return n
    

在这里插入图片描述
在这里插入图片描述

分页

  • 在Neo4j中进行分页查询,可以使用SKIP和LIMIT子句
    MATCH (p:Person)
    RETURN p.name
    ORDER BY p.name
    SKIP $skip
    LIMIT $limit
    
  • SKIP用于跳过指定的记录数,通常你根据页码计算这个值。例如,如果每页显示10条记录,第二页的skip值为10,第三页的skip值为20,以此类推。
  • LIMIT用于限制查询结果的数量,即每页要显示的记录数。
    match (n:Person) return n order by n.born desc skip 5 limit 10
    

在这里插入图片描述

match (n:Person) with n order by n.born desc limit 10 return n

在这里插入图片描述

with

  • WITH 语句将分段的查询部分连接在一起,查询结果从一部分以管道形式传递给另外一部分作为开始点。
  • 使用 WITH 可以在将结果传递到后续查询之前对结果进行操作。操作可以是改变结果的形式或者数量。WITH 的一个常见用法就是限制传递给其他 MATCH 语句的结果数。通过结合 ORDER BY 和 LIMIT,可获取排在前面的x个结果。
match (n:Person {name:"Keanu Reeves"}) --(m:Movie)
with m,n limit 3
match (m)--(k)
return k,m,n 

在这里插入图片描述

更新数据

  • 更新数据是使用set语句进行标签、属性更新。set操作是等幂性的。
match (n:User {name:"张宇"})
set n.age=40
return n

在这里插入图片描述

  • 所有User节点年龄增加1
    match (n:User) set n.age=n.age+1
    

在这里插入图片描述

  • 通过set增加标签
    match (n:User) set n:User2 return n 
    

在这里插入图片描述

  • 通过remove移除标签
match (n:User) remove n:User2 return n

在这里插入图片描述

match (n:User) remove n.age return n
  • 没有age属性设置age=20
match (n:User) where n.age is null set n.age=20 return n

在这里插入图片描述

删除数据

  • 删除数据通过delete、detach delete完成。其中delete不能删除有关系的节点,删除关系就需要detach delete
  • 删除User标签下的所有数据
    match (n:User) detach delete n
    
  • 删除单个节点 无法删除有关系的节点
    match (n:User {name:"张宇"}) delete n
    
  • 删除节点和关系,只适用于少量数据
    match (n:User {name:"张宇"}) detach delete n
    
  • 删除所有节点(谨慎使用)
    match (n) detach delete n
    

实例:好友推荐

  • 在社交网站中常常会有这样的功能,”你可能认识的人〞。图数据库是非常适合这样的场景的,接下来我们就尝试着使用Neo4j实现简化版的好友推荐。
CREATE (u1:User {name: "郭靖"})
CREATE (u2:User {name: "令狐冲"})
CREATE (u3:User {name: "岳不群"})
CREATE (u4:User {name: "左冷禅"})
CREATE (u5:User {name: "东方不败"})
CREATE (u6:User {name: "风清扬"})
CREATE (u7:User {name: "张无忌"})
CREATE (u8:User {name: "谢逊"})
CREATE (u9:User {name: "杨道"})
CREATE (u10:User {name: "乔峰"})CREATE
(u1)-[:FRIEND_OF]->(u2),
(u1)-[:FRIEND_OF]->(u3),
(u2)-[:FRIEND_OF]->(u4),
(u2)-[:FRIEND_OF]->(u5),
(u3)-[:FRIEND_OF]->(u6),
(u3)-[:FRIEND_OF]->(u7),
(u5)-[:FRIEND_OF]->(u8),
(u8)-[:FRIEND_OF]->(u9),
(u3)-[:FRIEND_OF]->(u10)

在这里插入图片描述

match (n:User) return n

在这里插入图片描述

  • 查询郭靖好友
match (n:User {name:"郭靖"}) -[:FRIEND_OF]->(m) return *

在这里插入图片描述

  • 查询郭靖好友关系为2~3层的用户
match (n:User {name:"郭靖"}) -[:FRIEND_OF*2..3]->(m) return m 

在这里插入图片描述

  • 郭靖要想和杨道认识,最短的路径是什么?
match (u:User {name:"郭靖"}),(m:User {name:"杨道"}),
p=shortestPath((u)-[*]-(m))
return p

在这里插入图片描述

http://www.ds6.com.cn/news/22749.html

相关文章:

  • 青海省交通建设工程质量监督站网站互联网运营推广是做什么的
  • 淘宝客网站如何做推广方案搜索引擎推广法
  • wordpress 订阅者广州seo代理计费
  • 太原网站推广怎么做精准ip地址查询工具
  • 营业执照 网站开发seo实战培训费用
  • 网站建设类公司seo顾问阿亮博客
  • 成都公司做网站seo服务收费
  • 网站服务器转移视频吗郑州网站关键词优化外包
  • 深圳做手机网站设计焦作整站优化
  • 利川网站建设在线域名解析ip地址
  • 模拟人生4做游戏下载网站宁波seo排名外包公司
  • wordpress社交系统主题重庆seo主管
  • 更新网站 seoseo排名第一的企业
  • 下列关于网站开发中网页额怎样在百度上免费建网站
  • 成都哪里好玩好吃抖音seo优化排名
  • 网站建设flash百度一下首页网页
  • 网站备案单位查询网站是怎么优化推广的
  • 西宁公安网站建设百度关键词seo优化
  • 网站建设业务员怎么做打开百度一下你就知道
  • 响应式企业展示型网站模板营销神器
  • 深圳网站建设工作室百度app官方下载
  • 以营销型网站为主要营销方式的案例百度指数官方
  • 网站建设进度计划表网站搭建外贸
  • 做图像网站福州网站优化
  • 网站建设培训美女软广告经典案例
  • 深圳的网站做网站怎么赚钱
  • 电脑网站网页设计2023年适合小学生的新闻
  • 房产网有哪些网站百度的首页
  • 做店标 做店招的网站广州最新政策
  • 住房城乡建设委房管局官方网站人工智能培训机构排名前十