CYPHER 语句(Neo4j)
CYPHER 语句(Neo4j)
创建电影关系图
CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})
CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})
CREATE (Carrie:Person {name:'Carrie-Anne Moss', born:1967})
CREATE (Laurence:Person {name:'Laurence Fishburne', born:1961})
CREATE (Hugo:Person {name:'Hugo Weaving', born:1960})
CREATE (LillyW:Person {name:'Lilly Wachowski', born:1967})
CREATE (LanaW:Person {name:'Lana Wachowski', born:1965})
CREATE (JoelS:Person {name:'Joel Silver', born:1952})
CREATE
(Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix),
(Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix),
(Laurence)-[:ACTED_IN {roles:['Morpheus']}]->(TheMatrix),
(Hugo)-[:ACTED_IN {roles:['Agent Smith']}]->(TheMatrix),
(LillyW)-[:DIRECTED]->(TheMatrix),
(LanaW)-[:DIRECTED]->(TheMatrix),
(JoelS)-[:PRODUCED]->(TheMatrix)
CREATE (Emil:Person {name:"Emil Eifrem", born:1978})
CREATE (Emil)-[:ACTED_IN {roles:["Emil"]}]->(TheMatrix)
CREATE (TheMatrixReloaded:Movie {title:'The Matrix Reloaded', released:2003, tagline:'Free your mind'})
CREATE
(Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrixReloaded),
(Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrixReloaded),
(Laurence)-[:ACTED_IN {roles:['Morpheus']}]->(TheMatrixReloaded),
(Hugo)-[:ACTED_IN {roles:['Agent Smith']}]->(TheMatrixReloaded),
(LillyW)-[:DIRECTED]->(TheMatrixReloaded),
(LanaW)-[:DIRECTED]->(TheMatrixReloaded),
(JoelS)-[:PRODUCED]->(TheMatrixReloaded)
(Keanu)-[:ACTED_IN {roles:['Julian Mercer']}]->(SomethingsGottaGive),
(NancyM)-[:DIRECTED]->(SomethingsGottaGive),
(NancyM)-[:PRODUCED]->(SomethingsGottaGive),
(NancyM)-[:WROTE]->(SomethingsGottaGive)
查找
查看节点所有属性
match (n:LOGIC_SUBJECT) unwind keys(n) as key return distinct key;
属性查找
#查找无age属性的节点
match(n:Person) WHERE n.age is not null RETURN n
#查找有age属性的节点
match(n:Person) WHERE n.age is null RETURN n
查找两个节点是否存在多个相同关系
match(m)-[r]-(n) where size((m)-[:relationship]-(n))> return *
模糊查找
#查找name中以"J"开头的内容
match(n:Person) where n.NAME=~ 'J.*' return n
查询标签属性信息
match (n:场景) unwind keys(n) as key return distinct key;
新增
新增节点
#新增Jack T 和 Tom T 两个人
create (:Person{name:'Jack T'}),(:Person{name:'Tom T'})
match(m:Person{name:'Jack T'}),(n:Person{name:'Tom T'}) return n,m

新增边
#Jack T 是Tom T的朋友
match(m:Person{name:'Jack T'}),(n:Person{name:'Tom T'}) create (m)-[r:friend_to]->(n) return n,r,m

新增属性
match(n:Person) where n.name='Jack T' set n+={age:15} return n

修改
修改属性
#单个节点
match(n:Person) where n.name='Keanu Reeves' set n.age=16 return n #批量节点 如果没有改属性,则会新增
match(n:Person) set n.age=16 return n
复制属性
match (m { name:'Keanu Reeves' }),(n { name: 'Hugo Weaving' }) set n = m return n,m
修改节点名称
match(n:INTERFACE) set n:T_BDM_ITFS
match(n:T_BDM_ITFS) remove n:INTERFACE
字符串处理
截取部分字符串
MATCH (n:LOGIC_SUBJECT) RETURN substring(n.NAME,,)
删除
删除属性
#单个节点删除属性
match(n:Person) where n.age=17 remove n.age
#批量删除属性
match(n:Person) remove n.age
导入
CSV文件
#import 文件夹下
load csv with headers from 'file:///fileName.csv' as newLables
create(n:LableNewName) set Lable = newLables LOAD CSV FROM 'file:///abc.csv' AS line
CREATE (:T_BDM_PANORAMA {name: line[2], sid:line[1]})
格式转换
LOAD CSV FROM 'https://neo4j.com/docs/developer-manual/3.3/csv/artists.csv' AS line
#字符串转换成整型 toInteger
CREATE (:Artist { name: line[], year: toInteger(line[])})
数据迁移
match(n:PROJECT_SG_CIM3_5) return n.name as name,id(n) as oldID;
match(n:PROJECT_SG_CIM3_5)-[r]->(m:PROJECT_SG_CIM3_5) return id(startNode(r)) as startId_BUS_CLASS,id(endNode(r)) as endId_BUS_CLASS;
load csv with headers from "file:///a661.csv" as row match (n:LOGIC_OBJECT{oldID:row.startId_BUS_CLASS}),(m:LOGIC_OBJ_DETAIL{oldID:row.endId_BUS_CLASS}) create (n)-[:LOG_OBJ_TO_OBJ_DET]->(m);
LOAD CSV WITH HEADERS FROM "file:///label.csv" AS line
create (:SYS{id:line.ID,name:line.NAME})
load csv with headers from "file:///relation.csv" as row match (n:SYS{id:row.first}),(m:SYS{id:row.second})
create (n)-[:LINE{name:row.NAME}]->(m);
CYPHER 语句(Neo4j)的更多相关文章
- neo4j 基本概念和Cypher语句总结
下面是一个介绍基本概念的例子,参考链接Graph database concepts: (1) Nodes(节点) 图谱的基本单位主要是节点和关系,他们都可以包含属性,一个节点就是一行数据,一个关系也 ...
- neo4j中cypher语句多个模糊查询
总结一下经验: neo4j中,cypher语句的模糊查询,好像是个正则表达式结构. 对于一个属性的多个模糊查询,可以使用如下写法: 比如,查询N类型中,属性attr包含'a1'或者'a2'的所有节点. ...
- Cypher 语句实战
Cypher 语句实战 下载和安装 Neo4j windows 桌面版- 环境设置 https://www.w3cschool.cn/neo4j/neo4j_exe_environment_setup ...
- Neo4J(Cypher语句)初识
欢迎各路大神临幸寒舍 以下节点标签为people,friend,用户自己也可以设置成其他标签,查询时需要用到标签.这个标签可以类比为关系数据库中的表名 创建节点.关系 创建节点(小明):create ...
- neo4j常用cypher语句
阅读更多 1.删除带有关系的节点 a.先删除关系 match (n:Node)-[r:关系名称]-() where (n...条件) delete r b.删除节点 match (n:Node ...
- Cypher查询语言--Neo4j 入门 (一)
目录 操作符 参数 标识符 注解 Start 通过id绑定点 通过id绑定关系 通过id绑定多个节点 所有节点 通过索引查询获取节点 通过索引查询获取关系 多个开始点 Cypher是一个描述性的图形 ...
- Cypher查询语言--Neo4j之聚合函数(五)
目录 聚合Aggregation 计数 计算节点数 分组计算关系类型 计算实体数 计算非空可以值数 求和sum 平均值avg 最大值max 最小值min 聚类COLLECT 相异DISTINCT 聚合 ...
- cypher语句摘要
match(n) return n 返回所有的节点和关系,只要有就返回,对节点和关系的查找不做条件限制. match(n:Student) return n 返回所有的Student节点 创建节点:c ...
- Cypher查询语言--Neo4j 之高级篇 (六)
目录 排序Order by 通过节点属性排序节点 通过多节点属性排序节点 倒序排列节点 空值排序 Skip 跳过前三个 返回中间两个 Limit 返回第一部分 函数Functions 判断 All A ...
随机推荐
- Quartus设计FIR滤波器的系数文件格式(适用于FIR II的IP核)
对常用的FIR,我们使用MATLAB的fdatool(或者filterDesigner) 设计滤波器,给定指标,生成系数.为了方便,我们将系数保存到文件,其保存格式比较简介,在此进行说明. 1.FIR ...
- P1010 一元多项式求导
1010 一元多项式求导 (转跳点:
- P1005 继续(3n+1)猜想
转跳点:
- CodeForces - 755C PolandBall and Forest (并查集)
题意:给定n个数,Ai的下标为1~n.对于每一个i,Ai与i在同一个树上,且是与i最远的点中id最小的点(这个条件变相的说明i与Ai连通).求森林中树的个数. 分析:若i与Ai连通,则在同一个树上,因 ...
- js实现连续输入之后发送请求
输入框是我们经常会用到的功能,想要实现输入就请求的功能 但是在实际开发中,为了减少服务器压力,会在输入之后停留1s没有输入之后再进行搜索 研究之后用原生js及表单写了一个简单的demo,如果有好的de ...
- eclipse中使用jstl
错误提示为"can not find the tag library for http://java.sun.com/jsp/jstl/core" 这是我在练习把axis2和普通j ...
- 165-PHP 文本替换函数str_replace(六)
<?php $str='programming'; //定义一个字符串 $replacement='er'; //定义替换的字符串 $res=substr_replace($str,$repla ...
- spark-submit脚本分析
执行任务 ./spark-submit \ --class cn.com.dtmobile.spark.DebugTest \ --master yarn \ --deploy-mode client ...
- 操作系统类型&操作系统结构&现代操作系统基本特征
五大类型操作系统 (1). 批处理操作系统 用户脱机使用计算机 用户提交作业之后直到获得结果之前就不再和计算机打交道. 作业提交的方式可以是直接交给计算中心的管理操作员,也可以是通过远程通讯线路提交. ...
- msf中arp_sweep使用报错:usbmon1:ERROR while getting interface flags:no such device
在许多的工具使用中,会出现很多的错误,要养成先思考再去寻找帮助的习惯 在用use命令使用arp_sweep模块的时候爆出错误:usbmon1:ERROR while getting interface ...