美文网首页
Neo4j 学习

Neo4j 学习

作者: Sachin猿人 | 来源:发表于2020-05-29 18:19 被阅读0次

    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"

    相关文章

      网友评论

          本文标题:Neo4j 学习

          本文链接:https://www.haomeiwen.com/subject/hbefzhtx.html