Neo4j之一_概念、语句、函数

一 模式描述

Neo4j中基本元素有三种:结点(node)、关系(relationships)、路径(path)。Neo4j基于模式对graph查找,因此要想查找目标先得知道如何描述目标符合的模式。

1.1 结点的模式

1.1.1 结点的描述

结点通过小括号描述,结点名可省略。

(a)
()
1.1.2 结点的标签

结点标签通过":标签名"描述,结点至少要有一个标签。

(a:Label)

(a:Lable1:Lable2)
1.1.3结点的属性

结点属性通过"{key:val}"描述。

(a{name:'zs',id:1})

1.2关系的模式

1.2.1关系的描述

关系通过箭头连线"–>“描述,关系详情通过”[]"描述;箭头可省略、详情可省略、关系名可省略。

(a)-->(b)
(a)--(b)
(a)-[r]->(b)
(a)-[]->(b)

Neo4j基于有向无环图DAG,创建关系时必须指定方向,查找时才可省略箭头
1.2.2 关系的标签

关系标签通过":标签名"描述,关系至少要有一个标签。

(a)-[r:Lable]->(b)
(a)-[:Lable]->(b)

(a)-[r:Label1|:Label2]->(b)

创建关系时,不能一次指定多个标签,查找时才可用
关系多标签描述方式与结点相比多了个分隔符
1.2.3关系的属性

关系属性通过"{key:val}"描述。

(a)-[{cost:1}]->(b)
1.2.4 可变长度的关系

关系长度通过"*"描述,关系长度范围通过"min…max"描述;

创建关系时不能指定关系长度,查找时才可用

指定长度的关系
(a)-[*2]->(b)			// 长度为2,等价于 (a)-->()-->(b)

指定长度范围的关系
(a)-[*2..4]->(b)		// 长度 [2,4]
(a)-[*..4]->(b)			// 长度 [0,4]
(a)-[*2..]->(b)			// 长度 [2,+∞)

任意长度
(a)-[*]->(b)			// 长度 [0,+∞)

1.3 路径的模式

1.3.1路径的描述

路径由一系列连接的结点和关系描述,路径名通过"p = XXX"指定;

p=(a)--(b)
p=(a)-[r]-(b)

二 匹配语句

https://www.jianshu.com/p/2bb98c81d8ee

Neo4j系列教程 :https://www.cnblogs.com/ljhdo/p/10929702.html

参考:Neo4j_MATCH详解与进阶

三 Neo4j中的函数

https://www.cnblogs.com/ljhdo/p/10919763.html

Neo4j中聚合函数在RETURN、WITH中使用,即先查找后统计,否则会报错。

MATCH (n:Blog) 
where n.tags contains '电波' 
return COUNT(n);

利用函数可以对返回结果中的结点和关系进行遍历。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值