Neo4j 学习

0.Neo4j安装

为了方便快速学习,采用docker 方式安装

下载镜像

docker pull neo4j

创建容器

docker run -itd -p 7474:7474 -p 7687:7687 -v /opt/data:/data --name neo4j neo4j:latest

这里没有没配置env参数 可在env参数中配置初始登录密码,这里采用默认用户名和密码
然后即可在浏览器中访问http://localhost:7474

安装完成~~

1.根目录

  • 描述
    返回连接基本信息和版本号
  • 请求方式
    GET
  • 请求地址
    http://localhost:7474
  • 返回数据
{
    "bolt_routing": "neo4j://localhost:7687",
    "transaction": "http://localhost:7474/db/{databaseName}/tx",
    "bolt_direct": "bolt://localhost:7687",
    "neo4j_version": "4.0.4",
    "neo4j_edition": "community"
}

2.API CQL

  • 描述
    通过提交cql语句,进行对应的CUID

  • 请求方式
    POST

  • 请求地址
    http://localhost:7474/db/neo4j/tx
    是访问根目录返回json数据transaction的值,数据默认名称是neo4j

  • 认证
    Basic Auth认证,安装后默认用户名和密码neo4j/neo4j

  • 返送数据

{
  "statements" : [ {
    "statement" : "MATCH (n) where id(n)=$nodeId RETURN labels(n)",
    "parameters" : {
      "nodeId": 10
    }
  } ]
}

statement字段是执行Neo4j CQL语句
parameters是CQL语句中参数的值的集合如上述CQL语句中`nodeId`,在参数值列表中有相应的值

3.常用查询Neo4j CQL语句

根据id 查询node lable

MATCH (n)where id(r)=22 RETURN lables(n)

创建单个节点(n为变量 Node 为节点标签)

CREATE (n:Node) RETURN n

创建带有属性的节点

CREATE (n:Node{name:"node_name",key1:"value1"}) RETURN n

通过id删除不在关系中的单个节点

MATCH (n) WHERE id(n) = 10 DELETE n

通过条件删除不在关系中的单个节点

MATCH (n:Node{name:"node_name"}) WHERE id(n) = 10 DELETE n

MATCH (n:Node) WHERE id(n) = 10 AND n.name = "node_name" DELETE n

创建两个节点并给节点创建关系(Person 为节点标签,Friends 为关系标签)

CREATE(n_John:Person{name:"John",age:25})-[f:Friends{date:2000}]->(n_Lily:Person{name:"Lily",age:23}) RETURN n_John,r,n_Lily

给已存在的两个节点创建关系

MATCH (n1:Node1),(n2:Node2) CREATE (n1)-[r:RelationShip]->(n2) RETURN n1,r,n2

根据id 查询relationship label

MATCH ()-[r]->() where id(r)=22 RETURN TYPE(r)

查询某个节点的n层关系(多层关系*n..m n<m)

MATCH p=(n:Person{name:"John"})-[ * n..n]-() RETURN p

查询满足条件的多个节点

MATCH (n1:Node1),(n2:Node2) RETURN n1,n2

删除处于关系中的节点,首先删除关系然后在删除节点(删除时关系放在前面节点房子啊后面如r,n,m)

MATCH (n:Person{name:"John"}),(m:Person{name:"Lily"})
OPTIONAL MATCH (n)-[r]-(m)
DELETE r,n,m

使用WITH查询指定的三级关系

MATCH(p:Person)-[r1]->(c:Company) WITH p,r1,c MATCH(c)-[r2]->(s:Soft) RETURN p,r1,c,r2,s

通过关系获取节点 STARTNODE(relationship-label)ENDNODE(relationship-label)

MATCH (n)-[r:Knows]->(m) RETURN STARTNODE(r),ENDNODE()

现有节点添加或者修改属性

MATCH (n) WHERE n.name="kitty" SET n.city="Beijing"

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,290评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,107评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,872评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,415评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,453评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,784评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,927评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,691评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,137评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,472评论 2 326
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,622评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,289评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,887评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,741评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,316评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,490评论 2 348