• Cypher学习笔记


      Cypher是一种声明式图形查询语言,可用于表达性和高效的图形查询和更新。它旨在同时适合开发人员和运营专业人员。Cypher的设计既简单又强大。可以轻松表达高度复杂的数据库查询,使您可以专注于自己的域,而不会迷失在数据库访问中。

      Cypher的结构基于英文散文和简洁的图像,使查询既易于编写,也易于阅读。

      子句链接在一起,并且它们相互之间提供中间结果集。例如,来自一个MATCH子句的匹配变量将是存在下一个子句的上下文。查询语言由几个不同的子句组成。

    • MATCH:要匹配的图形模式。这是从图形中获取数据的最常用方法。
    • WHERE:在自己的权利不是一个条款,但相当一部分MATCHOPTIONAL MATCHWITH。向模式添加约束,或过滤通过的中间结果WITH
    • RETURN:返回什么。
    CREATE (john:Person {name: 'John'})
    CREATE (joe:Person {name: 'Joe'})
    CREATE (steve:Person {name: 'Steve'})
    CREATE (sara:Person {name: 'Sara'})
    CREATE (maria:Person {name: 'Maria'})
    CREATE (john)-[:FRIEND]->(joe)-[:FRIEND]->(steve)

     例如,这是一个查询,该查询在返回“约翰”和找到的任何朋友之前,先找到一个名为“约翰”和“约翰的”朋友(虽然不是他的直接朋友)的用户。

    MATCH (john {name: 'John'})-[:friend]->()-[:friend]->(fof)
    RETURN john.name, fof.name

    接下来,我们将添加过滤以设置更多的运动部件:

    我们获取用户名列表,并从该列表中查找具有名称的所有节点,匹配其朋友,并仅返回具有以'S'开头的'name'属性的跟随用户。

    MATCH (user)-[:friend]->(follower)
    WHERE user.name IN ['Joe', 'John', 'Sara', 'Maria', 'Steve'] AND follower.name =~ 'S.*'
    RETURN user.name, follower.name

    以下是用于更新图形的子句示例:

    • CREATE(和DELETE):创建(和删除)节点和关系。
    • SET(和REMOVE):将值设置为属性,并使用SETREMOVE删除节点上的标签。
    • MERGE:匹配现有的或创建新的节点和模式。与独特的约束一起使用时,这尤其有用。
  • 相关阅读:
    com.jsj.dao====新闻发布系统(4)
    java类加载器,getClassLoader()
    类名.class的理解
    static{}和{}===静态模块和普通模块的理解
    com.jsj.factory====新闻发布系统(3)
    怎么做(我直接敲代码,有解释)===新闻发布系统(2)
    (8)小项目--界面的代码
    (7) 小项目
    2 Servlet(1)
    RMQ之ST算法模板
  • 原文地址:https://www.cnblogs.com/cocoxu1992/p/12103600.html
Copyright © 2020-2023  润新知