欢迎各路大神临幸寒舍

以下节点标签为people,friend,用户自己也可以设置成其他标签,查询时需要用到标签。这个标签可以类比为关系数据库中的表名

创建节点、关系

创建节点(小明):create (n:people{name:’小明’,age:’18’,sex:’男’})  return  n;
创建节点(小红): create (n:people{name:’小红’,age:’18’,sex:’女’}) return n;
创建关系(小明送礼物给小红):小明节点id为0,小红节点id为1
start a =node(0),b=node(1) create (a)-[n:gift]->(b)return n

属性查询

  • 查询18岁的人
Match (n: people) where n.age = 18 return n
  • 查询大于18岁的人
Match (n: people) where n.age > 18 return n
  • 查询大于等于18岁的人
Match (n: people) where n.age >= 18 return n
  • 查询不等于18岁的人
Match (n: people) where n.age <> 18 return n

关系查询

  • 正向查询

    查询小明送礼物给了哪些人,有两种写法:(以下例子类似)
1.   Match (n:people)-[: gift]->(end:people) where n.name='小明'  return end
2. Match (n:people{name: '小明'})-[:gift]->(end:people) return end
  • 反向查询

    查询哪些人送了礼物给小明
Match (n:people{name: '小明'})<-[:gift]-(end:people) return end
  • 无方向查询

    查询和小明有礼物来往的人
Match (n:people{name: '小明'})-[:gift]-(end:people) return end

ID查询

在neo4j中,每一个节点,会自动有一个唯一Id。

查找id为1的节点,有两种方式:

1.  Start  n = node(1)  return  n
2. Match (n:people) where ID(n)=1 return n

级次查询(树形遍历)

以根部为条件,查询第二层的节点

Match (start:people{name:’小明’})-[:gift*2..2]->(end:people) return end

以根部为条件,查询第一层和第二层的节点

Match (start:people{name:’小明’})-[:gift*1..2]->(end:people) return end

以根部为条件,按级次查询出所有直接或间接获得过小明的礼物的人

Match (start:people{name:’小明’})-[:gift*]->(end:people) return end

Delete

删除2个节点之间的关系:

Match (x:people{name:’小明’})-[r:gift]->(y:people{name:’小红’}) delete  r

删除节点,会删除和该节点有关的所有关系:

Match (n:people{name:’小红’}) delete n

Count

(不按属性)查询标签(people)中一共有多少节点(人):

Match (n:people)  return  count(n)

(按属性)查询标签(people)中年龄为18岁的一共有多少节点(人):

三种写法:

1.  Match (n:people) where  n.age=18   return  count(n)
2. Match (n:people{age:’18’}) return count(n)
3. Match (n:people) return count(n.age=18)

Limit

查询标签(people)中的10个节点(人):

Match (n:people)  return  n  limit  10

Distinct

查询标签(people)中所有的不同的age:

Match (n:people)   return  distinct(n.age)

Order by

根据标签(people)中的name 排序:

Match(n:people)   return  n  order by name    (默认升序)
Match(n:people) return n order by name asc (升序)
Match(n:people) return n order by name desc (降序)

Union all (Union)

求并集,不去重(去重用Union):

Match(n:people)  where  n.age=18  return n.name as name
Union all
Match(n:friend) where n.age=18 return n.name as name

In

查询id为0,5,8的节点:

Match  (n)  where ID(n)  IN[0,5,8]  return  n

Exists

判断节点是否存在 name这个属性:

Match  (n)  where  exists(n.name)  return  n

With

查询name以‘小’开头的节点:

Match  (n)   where  n.name  starts  with ‘小’  return  n

查询name以‘明’结尾的节点:

Match  (n)   where  n.name  ends   with ‘明’  return  n

Contains

查询name中含有 ‘小’的节点

Match  (n)  where  n.name  Contains  ‘小’  return  n

本文链接:https://blog.csdn.net/free8666/article/details/52909523

Neo4J(Cypher语句)初识的更多相关文章

  1. neo4j 基本概念和Cypher语句总结

    下面是一个介绍基本概念的例子,参考链接Graph database concepts: (1) Nodes(节点) 图谱的基本单位主要是节点和关系,他们都可以包含属性,一个节点就是一行数据,一个关系也 ...

  2. neo4j中cypher语句多个模糊查询

    总结一下经验: neo4j中,cypher语句的模糊查询,好像是个正则表达式结构. 对于一个属性的多个模糊查询,可以使用如下写法: 比如,查询N类型中,属性attr包含'a1'或者'a2'的所有节点. ...

  3. CYPHER 语句(Neo4j)

    CYPHER 语句(Neo4j) 创建电影关系图 新增 查找 修改 删除 导入 格式转换 创建电影关系图 CREATE (TheMatrix:Movie {title:'The Matrix', re ...

  4. Neo4j Cypher语法(三)

    目录 5 函数 5.1 谓词函数 5.2 标量函数 5.3 聚合函数 5.4 列表函数 5.5 数学函数 5.6 字符串函数 5.7 Udf与用户自定义函数 6 模式 6.1 索引 6.2 限制 7 ...

  5. Neo4j Cypher语法(二)

    目录 4 子句 4.1 CREATE 4.2 MATCH 4.3 Match 4.4 Create match return连用来返回一个关系基础 4.5 Optional_match 4.6 Wit ...

  6. Cypher 语句实战

    Cypher 语句实战 下载和安装 Neo4j windows 桌面版- 环境设置 https://www.w3cschool.cn/neo4j/neo4j_exe_environment_setup ...

  7. Neo4j原生语句cc

    Cypher语句 Cypher语句是Neo4j的图查询语言.以下例子来自Neo4j Browser,启动后在命令栏输入:play cypher即可1. 创建一个节点: 语法:CREATE (node- ...

  8. neo4j常用cypher语句

    阅读更多 1.删除带有关系的节点   a.先删除关系 match (n:Node)-[r:关系名称]-() where (n...条件) delete r   b.删除节点 match (n:Node ...

  9. Neo4j Cypher语法(一)

    目录 Cypher手册详解 1 背景 2 唯一性 3 语法 3.1 命名规则 3.2 表达式 3.3 变量与保留关键字 3.4 参数 3.5 操作符 3.6 模式 3.7 列表 Cypher手册详解 ...

随机推荐

  1. 隐藏父类方法的new和重写父类虚方法virtual的区别

    一.代码 public class Parent { public void Method_A() { Console.WriteLine("Parent Method_A"); ...

  2. box-shadow 制作单边阴影效果,不影响其它边的效果

    box-shadow 制作单边阴影效果,不影响其它边的效果:  https://blog.csdn.net/u010289111/article/details/53171128 CSS 样式实现单边 ...

  3. 厉害了,Java EE 再次更名为 Jakarta EE

    来自:开源中国 https://www.oschina.net/news/108108/java-ee-rename-as-jakarta-ee Eclipse基金会最近对 Java EE 标准的每个 ...

  4. ELK+filebeat+redis 日志分析平台

    一.简介 ELK Stack是软件集合Elasticsearch.Logstash.Kibana的简称,由这三个软件及其相关的组件可以打造大规模日志实时处理系统. 其中,Elasticsearch 是 ...

  5. neo4j使用cypher查询路径避免出现环路

    neo4j在使用可变长路径找两个点之前的所有路径时,会返回包含环路的路径(一个点在路径中出现两次),如下面的语句: MATCH path = (x)-[:KNOWS*]-(y) 可能返回a->b ...

  6. 微软宣布加入 OpenJDK 项目

    近日,微软的 Bruno Borges 在 OpenJDK 邮件列表中发布了一条消息,内容包含接下来发生的事情以及微软如何开始将其团队整合到 OpenJDK 社区.在邮件中,Bruno Borges ...

  7. Centos7下编译安装php扩展redis5.0.2

    安装环境:centos7 + php 7.2.191. 下载地址:http://pecl.php.net/get/redis-5.0.2.tgz .tgz http://pecl.php.net/ge ...

  8. CentOS 7.3 环境配置java和tomcat开机启动

    Centos7下添加开机自启动服务和脚本  https://blog.csdn.net/GMingZhou/article/details/78677953 安装部分参考我的博文,仅参考他的开机启动部 ...

  9. C# Aspose.Words 数据写入到word,模板样式复杂(转换指定内容并返回多张图片)

    public ResultResponse<string[]> PrintStudyRecords([FromBody]StudyInfo info) { ResultResponse&l ...

  10. 什么是SolrCloud

    1.1 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候 ...