图数据库Neo4j

1 篇文章 0 订阅
1 篇文章 0 订阅

neo4j安装:
1. 配置环境变量 NEO4J_HOME
   变量值 E:\neo4j-community-3.4.1
2.配置环境变量path   
  %NEO4J_HOME%\bin
3. 启动 neo4j.bat console 
访问浏览器:
http://localhost:7474/browser/
______________________________________________________________________________________________________

1.查询语句
 MATCH (p:people) WHERE p.idcard= "450127200711173043"  RETURN p
 或
 MATCH (p:people{idcard:'450127200711173043'})   RETURN p
 或
 MATCH (p:people) WHERE p.idcard in ['450127200711173043']  RETURN p
 
2.只查询5级
 match r=(:star{name:"yufei"})-[*..5]->(:star{name:"yufei"}) return r
 
 match count=(:people{idacrd:"34122219811122845x"})-[*..1]->(:people{idcard:"450104196612240526"}) return  count(r) as count
  match (:人{idcard:"34122219811122845x"})-[]->(:人{idcard:"450104196612240526"}) return  count(*) as count

match (:人{idcard:"34122219811122845x"})-[]-(:人{idcard:"450104196612240526"}) return  count(*) as count
                         //match (:人{idcard:"34122219811122845x"})-[]-(:人{idcard:"450104196612240526"}) return  count(*) as count


3.通过多个节点ID查询
start user=node(71,68) match (user)-[:哥哥]->(p) return p;
 
4.删除关系
 MATCH (n:people{idcard:'450125199408260912'})-[r:]-(n:people{idcard:'450125199408260912'}) DELETE r
 按条件删除关系重复的关系
 MATCH (p1:people)-[r:姐姐]-(p2:people) where p1.idcard=p2.idcard  DELETE r
  
5.删除节点
 MATCH (p1:people)-[r:关联的手机号]-(p2:phone{tablename:'机动车信息'}) DELETE r,p2
 
 MATCH (p:people) DELETE p
6.模糊查询
match p=(n)-[r]-(m) where n.name=~'.*name.*' delete n,r;
match p=(n)-[r]-(m) where n.name contains 'name' delete n,r; // 模糊查询也可以使用非正则的形式(关键字)

  
7.创建关系
match (p:keyPersonnel{idcard:622723199501292218}),(phone:phone{phoneNumber:17794213370})  create(p)-[r:关联的手机号]-> (phone)
 
8.设置唯一字段
 CREATE CONSTRAINT ON (p:people) ASSERT p.idcard IS UNIQUE
 删除唯一约束
 DROP CONSTRAINT ON (p:people) ASSERT p.idcard IS UNIQUE
 
  CREATE CONSTRAINT ON (car:机动车) ASSERT car.uniqueField IS UNIQUE
 450107200810160349
9.创建索引
create index on:people(idcard)

10.删除索引
drop index on:people(idacrd)

11.创建唯一索引
create constraint on (p:people) assert p.idcard is unique

12.删除唯一索引
drop constraint on (p:people) assert p.idcard is unique
13.排序 order by

降序 MATCH (n:Person) RETURN n order by n.id,n.name desc LIMIT 25
正序 MATCH (n:Person) RETURN n order by n.id LIMIT 25
14.Limit 和 skip

Limit : 显示多少行,最前边开始, Skip:跳过前多少行
MATCH (n:Person) RETURN n order by n.id desc skip 2 LIMIT 25
15.Union 和 union all

Union:把多段Match的return结果 上线组合成一个结果集,会自动去掉重复行;
Union all:作用同union,但不去重;
eg. MATCH (n:Person) where n.age>20 RETURN n.id,n.age union all MATCH (n:Person) where n.id='erzi' RETURN n.id,n.age
16.通过时间过滤

match (n:人) where n.insert_time>'1516204700000' and n.insert_time<'1516204900000' return n;
17.查询存在name属性的节点

MATCH (n:人) WHERE exists(n.name) RETURN n;
18.批量操作

:param events:[{year:2014,id:1},{year:2014,id:2}]
unwind $events as event
merge (y:Year {year:event.year})
merge (y)<-[:IN]-(e:Event {id:event.id})
return e.id as x
order by x
19.删除2个neode之间重复的relationship

MATCH (a)-[r:has_test_rel]->(b)
WITH a, b, TAIL (COLLECT (r)) as rr
WHERE size(rr)>0
FOREACH (r IN rr | DELETE r)
20.匹配去重返回

MATCH (n) WHERE n.productName='苹果' RETURN DISTINCT n
21.Collect将所有值收集到一个集合list中

MATCH (n:`事`) RETURN collect(n.eid);
22.查不存在关系的两个独立节点

match (n) , (m)
where not n-[ * ]-(m)
return n,m
limit 10
23.多值模糊查询,使用explain查看相对于OR的优势

match (n:Label) where n.attr =~ '.*a1.*|.*a2.*' return n
24.有数组的节点
create (u:User{name:'Ma',age:23,compare:['Neo4j','MySQL','ArangoDB']}) 
return n
25.查询
match (n:User) where 'MySQL' in n.compare return n;
26 修改标签名
MATCH (n:OLD_LABEL)
REMOVE n:OLD_LABEL
SET n:NEW_LABEL

文档
http://neo4j.com.cn/public/docs/chapter2/chapter2_1.html

https://www.cnblogs.com/xiaoxiaoMrHuang/p/10789236.html

https://www.cnblogs.com/shixisheng/p/10717102.html
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞腾创客

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值