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. 面试之JS深拷贝的实现

    在面试中你是否遇到过如下场景: Q:小朋友,你是否了解如何拷贝一个对象? R:此时,机智的你可能会想到 Object.assign({}, obj); Q:那如何深拷贝一个对象呢? R:机智的你 JS ...

  2. K. Road Widening

    \(考虑每个区域可行的区间\) \(x[1]=s[1]\ \ y[1]=s[1]+g[1]\) \(x[i]=max(x[i-1]-1,s[i]),y[i]=min(y[i-1]+1,s[i]+g[i ...

  3. qt获取指定目录下符合条件的文件路径

    1)设置名称过滤器 QDir * dir = new QDir(路径); QStringList filter; Filter << QStringLiteral(“筛选的文件条件,如.x ...

  4. abp web.mvc项目中的菜单加载机制

    abp中的菜单加载机制 在abp中菜单的定义与我们传统写的框架不一样,它是在编写代码的时候配置,而我们一般写的通用权限管理系统中,是后期在后台界面中添加的.这一点有很大不同.abp关于菜单的定义及管理 ...

  5. python3语法学习第四天--字符串

    字符串:是python中的常用数据类型 Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用 访问字符串的值: 下标和分片截取 字符串的连接:‘+’ 字符串内置函数挺多,选 ...

  6. JDBC12 ORM01 Object[]存放一条记录

    ORM(Object Relationship Mapping)的基本思想 -表结构跟类对应:表中的字段和类的属性对应:表中记录和对象对应 让JavaBean的属性名和类型尽量和数据库保持一致 一条记 ...

  7. SpringBoot + SpringCloud的爬坑之旅

    1,application.yaml中配置没有生效问题解决 如果配置文件确认没有错误但是没有生效首先是要到编译目录去查看是否被编译过去了,如果没有,请先将项目clean在重启 但是idea启动项目时也 ...

  8. sqli-labs之Page-2

    第二十一关:base64编码的cooki注入 YOUR COOKIE : uname = YWRtaW4= and expires: Tue 10 Mar 2020 - 03:42:09 注:YWRt ...

  9. angular controller的使用

    在angular.js最常用的模块就是控制器了,通常我们会这样使用: var myAppModule = angular.module('myApp', []);   myAppModule.cont ...

  10. 20184302 实验三《Python程序设计》实验报告

    20184302 2019-2020-2 <Python程序设计>实验3报告 课程:<Python程序设计> 班级: 1843 姓名: 李新锐 学号:20184302 实验教师 ...