neo4j使用

一、创建关系,并且关系有属性

MATCH (a:Person{id:"/user/vpe.cripac/new2/20131223141032-20131223141628/d3fba52d-c1a5-4aa0-8c95-6be46892688f/4"}),
(b:Person{id:"/user/vpe.cripac/new2/20131223141032-20131223141628/d3fba52d-c1a5-4aa0-8c95-6be46892688f/2"}) 
CREATE (a)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(b) 
RETURN r

其中a,b,r这样的标签名称,貌似只在当前的语句中生效,而DO_SHOPPING_WITH这种关系的名称也是可以重复的

而且关系虽然在创建时有方向,但是在查询时,可以直接把双向关系都查询出来

MATCH (a:Person)-[:DO_SHOPPING_WITH]-(b:Person)return a,b
MATCH (b:Hour{hour:2013122011})-[:HAS_MIN]- (c:Minute)-[:INCLUDE_PERSON]- (d:Person) RETURN b,c,d order by c.start

http://blog.csdn.net/hwz2311245/article/details/54602706

同时,在创建关系时,如果没有箭头MERGE (a)-[r:Similarity]-(b),则在MERGE 的情况下,第二次就不会重复插入一条边,表面上看确实没有,但实际中,好像是存在第二条边的关系的,这是个问题

二、添加属性

MATCH (dc:Person{id:"/user/vpe.cripac/new2/20131223141032-20131223141628/d3fba52d-c1a5-4aa0-8c95-6be46892688f/2"})
SET dc.atm_pin = 3456
RETURN dc

创建边,再次不需要创建,向边添加属性

MATCH (a:Person {trackletID: {id1}}), (b:Person {trackletID: {id2}}) MERGE (a)-[r:Similarity]->(b) set r.Minute={Minute},r.Hour=1;

三、在neo4j中,每一个节点,会自动有一个唯一Id。
查找id为1的节点,有两种方式:

Start  n = node(1)  return  n
Match  (n:people)  where  ID(n)=1  return  n 
Match  (a:Person {trackletID: "CAM01-20140226110701-20140226111249_tarid117"}) where id(a) in
[96999,96997,96989,97003,97005,96987] delete a
MERGE (a:Person {trackletID: "CAM01-20140226110701-20140226111249_tarid113"})-[r:Similarity]->(b:Person 

{trackletID: "CAM01-20140226110701-20140226111249_tarid111"}) set r.Minute=5 

这样不是查找到节点后创建边,而是创建了新的节点,只有trackletID属性,同时创建了边

四、neo4j sql语法
http://blog.csdn.net/free8666/article/details/52909523

五、limit 的限制针对的是范围小的节点,比如

MATCH (a:Hour)-[:HAS_MIN]- (b:Minute) RETURN b,a limit 5

查出来的是b是5个

MATCH (a:Hour)-[r1:HAS_MIN]- (b:Minute) -[r2:INCLUDES_PERSON]-(c:Person)RETURN a,b,c limit 5

两条边必须都要有标记才行

六、索引

CREATE INDEX ON :Person (trackletID)
DROP INDEX ON :Person (dataTypetrackletID)

七、IN

MATCH (a:Person {trackletID: "CAM01-20140226113013-20140226113601_tarid55"}),(b:Person) where b.trackletID in

["CAM01-20140226113013-20140226113601_tarid54","CAM01-20140226113601-20140226114149_tarid48","CAM01-

20140226114741-20140226115336_tarid81"] MERGE (a)-[r:Similarity]->(b) set r.Minute in[1,2,3] return a,b

八、null

where r.Minute<>'null'
r.Minute is not null
r.Minute is null

九、删除重复数据

MATCH (n:Employee {name: “Govind Singh”})
WITH n
SKIP 1
DELETE n

十、remove
删除节点或关系的标签
删除节点或关系的属性
https://www.w3cschool.cn/neo4j/neo4j_cql_remove.html

十一:模糊查询

MATCH (n:Person) where n.videoURL =~'CAM01.*' RETURN count(n)
MATCH (n:Person) where n.name=~'.*Tom.*' RETURN n LIMIT 25
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值