match(n) return n 返回所有的节点和关系,只要有就返回,对节点和关系的查找不做条件限制。

match(n:Student) return n 返回所有的Student节点

创建节点:
create (n:Person { name: 'Tom Hanks', born: 1956 }) return n;
创建节点,同时创建关系:create(c:Customer{name:'c01',age:33})-[r:Buy]->(p:Product{name:Book,price:23.5}) 为指定的两个节点之间创建关系:
MATCH (a:Person),(b:Movie)
WHERE a.name = 'Robert Zemeckis' AND b.title = 'Forrest Gump'
CREATE (a)-[r:DIRECTED]->(b)
RETURN r;

https://blog.csdn.net/free8666/article/details/52909523 中值得注意的几个例子:

https://www.cnblogs.com/hwaggLee/p/5959716.html 中值得注意的几个例子:

注意其中如何表示节点之间的距离长度:

(a)-[:R*]->(b)表示a经过任意跳数(距离)的关系R到达b;

(a)-[*2]->(b)表示a经过2跳(距离为2)的任意关系到达b;

(a)-[*1..3]->(b)表示a经过1至3跳的任意关系到达b;

为制定节点之间创建关系:

match(c:Customer),(p:PhoneNumber) where (c.name='c02'or c.name='c03') and p.no=131 create(c)-[r:HAS_PHONE]->(p)

以上是为c02,c03的客户指定131的电话号码。

查找度为0(与其他节点没有任何关系)的节点:

match(c:Customer)-[r:HAS_PHONE]->(e:PhoneNumber) where count(r)=0 return c

以上查找度为0的节点的方法会报错,提示count方法用错了,因此暂时不知道怎么查找孤立节点。

另外,Neo4j官网给出的例子也很好价值:

以上是只寻找距离为2跳的朋友。

上述例子中,[*]表示任意关系,且距离任意,ssn为美国社会保险账号,Cayman account表示开曼群岛账户,ase account是美国证券交易所账户,BofA是Bank of America的缩写。

上述例子中,寻找依赖Server 1的服务,结果是Webserver VM和Public Website都依赖Server 1,为所求结果。

聚合和分组:可参考https://www.cnblogs.com/zhengshiqiang47/p/8488490.html

其中,with可以用来实现类似group by的having条件:

另外,我自己试过有效的:match(c:Customer)-[:HAS_PHONE]->(p:PhoneNumber) with count(*) as count,p where count>2 return count,p

这个句子是实现查找有超过2个人共同使用的手机号,和该手机号的使用人数。达到了SQL语句group by having的效果。

上述的with person,count(*) AS appearances,collect(m.title) AS movies WHERE appearances >1 RETURN person.name,appearance,movies

其实可以对应SQL语句 select person.name ,count(*) AS appearances,concat(m.title) AS movies from xxxtable group by person  having count(*)>1,其中相同的颜色的部分互相对应,即

with xxx,xxx,xxx 对应于group by xxx,xxx,xxx

cypher语句摘要的更多相关文章

  1. Cypher 语句实战

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

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

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

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

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

  4. CYPHER 语句(Neo4j)

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

  5. shell启动执行cypher语句

    1.跳转到目录:cd /data/soft/neo4j-community-not/ 2.修改配置文件:nano ./conf/neo4j.conf: 3. 登录:bin/cypher-shell - ...

  6. Sql语句摘要

    1.分批更新数据库 declare @x intset @x=1 while(@x<=51) begin begin tran update UserFavorite set UserFavor ...

  7. Neo4J(Cypher语句)初识

    欢迎各路大神临幸寒舍 以下节点标签为people,friend,用户自己也可以设置成其他标签,查询时需要用到标签.这个标签可以类比为关系数据库中的表名 创建节点.关系 创建节点(小明):create ...

  8. neo4j常用cypher语句

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

  9. 查询语句写了limit 1,为什么依然很慢?

    摘要: 很多时候计算引擎会对语句进行代价估计并调整语句的执行顺序.执行计划是语句如何执行的直观表达.语句如何执行不能只关注语句写法,要想写出符合预期执行顺序的查询语句,还需要关注语句执行计划. 本文分 ...

随机推荐

  1. 题目分享M

    题意: 其实就是找到AB+min(AC,BC)的最大值 分析:刚看到这道题,很容易往AB为树的直径方向上去想,C就可以遍历每个点,最后求出对于每个点为C时的最大值 那AB到底是不是树的直径或者为什么A ...

  2. LeetCode 98. 验证二叉搜索树 | Python

    98. 验证二叉搜索树 题目来源:https://leetcode-cn.com/problems/validate-binary-search-tree 题目 给定一个二叉树,判断其是否是一个有效的 ...

  3. 我在 IntelliJ IDEA 中必有得插件和配置

    最近在陆续写 Java 并发编程系列,好多朋私信问我的不是并发内容本身,而是我的 IDEA 主题配置.我就姑且认为好的主题配置可以写出更好的并发程序吧 即便这种可能性只有万分之一,我也要把我的 IDE ...

  4. vue2.0那些坑之使用elementUI后v-on:click事件不生效问题

    最近在维护vue2.0的项目,遇到了不少坑,在这里说下引用elementui之后,使用v-on:click绑定点击事件无效的情况,如下图: 我想阻止冒泡事件,发现无效.这里将@click换成了@cli ...

  5. SSM整合案例:图书管理系统

    目录 SSM整合案例:图书管理系统 1.搭建数据库环境 2.基本环境搭建 2.1.新建一个Maven项目,起名为:ssmbuild,添加web的支持 2.2.导入pom的相关依赖 2.3.Maven静 ...

  6. 面试官:你说你懂动态代理,那你知道为什么JDK中的代理类都要继承Proxy吗?

    之前我已经写过了关于动态代理的两篇文章,本来以为这块应该没啥问题,没想到今天又被难住了- 太难了!!! 之前文章的链接: 动态代理学习(一)自己动手模拟JDK动态代理. 动态代理学习(二)JDK动态代 ...

  7. java运行时跟编译时的区别,欢迎大家指正

    个人博客地址:https://blog.csdn.net/qq_41907991 关于java运行时及编译时期的区别: 首先我们要了解编译以及运行的概念: 编译就是指,编译器帮你把源码翻译成机器能识别 ...

  8. 郭天祥TX-1C+DS12C887实现电子日历和闹钟

    经过几天时间,看着DS12C887的DataSheet把这个带闹钟的电子日历遍了出来. 发现了几个问题,在此记录一下: DS12C887虽然说带闰年.星期等等的自动计算,可是在手工设置时间时,居然可以 ...

  9. Linux之V4L2基础编程

    Linux之V4L2基础编程 本文内容来源于网络,本博客进行整理. 1. 定义 V4L2(Video For Linux Two) 是内核提供给应用程序访问音.视频驱动的统一接口. 2. 工作流程: ...

  10. js 调用webservice及nigix解决跨域问题

    前言 我们写一些简单的爬虫的时候会遇到跨域问题,难道我们一定要用后台代理去解决吗? 答案是否定的.python之所以适应爬虫,是因为库真的很好用. 好吧python不是今天的主角,今天的主角是js. ...