Neo4J(Cypher语句)初识
欢迎各路大神临幸寒舍
以下节点标签为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语句)初识的更多相关文章
- neo4j 基本概念和Cypher语句总结
下面是一个介绍基本概念的例子,参考链接Graph database concepts: (1) Nodes(节点) 图谱的基本单位主要是节点和关系,他们都可以包含属性,一个节点就是一行数据,一个关系也 ...
- neo4j中cypher语句多个模糊查询
总结一下经验: neo4j中,cypher语句的模糊查询,好像是个正则表达式结构. 对于一个属性的多个模糊查询,可以使用如下写法: 比如,查询N类型中,属性attr包含'a1'或者'a2'的所有节点. ...
- CYPHER 语句(Neo4j)
CYPHER 语句(Neo4j) 创建电影关系图 新增 查找 修改 删除 导入 格式转换 创建电影关系图 CREATE (TheMatrix:Movie {title:'The Matrix', re ...
- Neo4j Cypher语法(三)
目录 5 函数 5.1 谓词函数 5.2 标量函数 5.3 聚合函数 5.4 列表函数 5.5 数学函数 5.6 字符串函数 5.7 Udf与用户自定义函数 6 模式 6.1 索引 6.2 限制 7 ...
- Neo4j Cypher语法(二)
目录 4 子句 4.1 CREATE 4.2 MATCH 4.3 Match 4.4 Create match return连用来返回一个关系基础 4.5 Optional_match 4.6 Wit ...
- Cypher 语句实战
Cypher 语句实战 下载和安装 Neo4j windows 桌面版- 环境设置 https://www.w3cschool.cn/neo4j/neo4j_exe_environment_setup ...
- Neo4j原生语句cc
Cypher语句 Cypher语句是Neo4j的图查询语言.以下例子来自Neo4j Browser,启动后在命令栏输入:play cypher即可1. 创建一个节点: 语法:CREATE (node- ...
- neo4j常用cypher语句
阅读更多 1.删除带有关系的节点 a.先删除关系 match (n:Node)-[r:关系名称]-() where (n...条件) delete r b.删除节点 match (n:Node ...
- Neo4j Cypher语法(一)
目录 Cypher手册详解 1 背景 2 唯一性 3 语法 3.1 命名规则 3.2 表达式 3.3 变量与保留关键字 3.4 参数 3.5 操作符 3.6 模式 3.7 列表 Cypher手册详解 ...
随机推荐
- for语句基础求和练习
结构 for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体; } 1.求出1-10之间数据之和: class Hello2 { public static void main(Strin ...
- ubuntu中下载pycharm并添加到桌面
方法一:下载Pycharm与安装 下载地址:https://www.jetbrains.com/pycharm/ Pycharm专业版和社区版对大多数人来说差别不大,区别如下: 我们下载Linux的社 ...
- rabbitmq的管理软件以及PHP7安装rabbitmq的
rabbitmq-server管理软件的安装 1.mac下载rabbitmq-server brew install rabbitmq 2.启动服务rabbitmq-server rabbitmq-s ...
- linux-java
查看Java进程耗内存线程 top -Hp pid printf '%x\n' pid ->jid(java thread) 查看time值最大 jstack pid | grep jid 查看 ...
- mongodb与java的整合
mongodb的相关命令我们这里不在赘述,因为其文档下写的非常清楚,也很容易懂.这里我们说一下其余java的整合,mongodb配置请查看官方文档 1.首先我们应该导入期相关依赖, org.mongo ...
- ActiveMQ安装步骤及介绍
1.什么是ActiveMQ? ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provider实现. JMS相关概念 提供者:实现JMS规范的消息中间件服务器 客户端:发送或接 ...
- 21.与重入锁相关联的Condition
import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; /** * ...
- pc上用C语言模拟51多任务的案例程序
#include <stdio.h> #include <stdlib.h> //任务槽个数.在本例中并未考虑任务换入换出,所以实际运行的任务有多少个, //就定义多少个任务槽 ...
- datagrid+toolbar 不分页 显示
1 新建DataGrid.js文件 /*** * * *el: table id * ***/ function showDataGrid(el) { $(el).datagrid({ title: ...
- MariaDB 安装
MariaDB的所有下载都位于官方MariaDB基金会网站的下载部分. 单击所需版本的链接,并显示多个操作系统,体系结构和安装文件类型的下载列表. 在LINUX / UNIX上安装 如果你熟悉Linu ...