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语句中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

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"

你可能感兴趣的:(Neo4j 学习)