多标签查询

更新时间:2025-02-13 02:35:14

标签(label)用于表示节点和边的属性,用于语义上进行分类。

多标签表达

多标签之间使用|进行分隔,如下:

(n:Person|Company)
[p:KNOWS|LIKES]

数据准备

SELECT create_graph('imdb');
SELECT *
FROM cypher('imdb', $$
 CREATE (toby:actor {name: 'Toby Maguire'}),
  (willam:director {name: 'Willam Dafoe'}),
  (hanks:person {name: 'Tom Hanks'}),
  (spiderman:movie {title: 'Spiderman'}),
  (toby)-[:acted_in]->(spiderman),
  (willam)-[:directed]->(spiderman),
  (hanks)-[:likes]->(spiderman)
$$) AS (a agtype);

示例

  • 查询标签为actordirector的人名。

    SELECT * FROM cypher('imdb', $$
    MATCH (a:actor|director) 
    RETURN a.name
    $$
    ) as (name agtype);

    返回结果如下:

          name      
    ----------------
     "Toby Maguire"
     "Willam Dafoe"
    (2 rows)
  • 查询在directedacted_in关系中,与电影Spiderman有联系的人。

    SELECT * FROM cypher('imdb', $$
    MATCH (p)-[r:acted_in|directed]->(:movie {title: 'Spiderman'}) 
    RETURN p.name
    $$
    ) as (name agtype);

    返回结果如下:

          name      
    ----------------
     "Toby Maguire"
     "Willam Dafoe"
    (2 rows)
  • 本页导读 (1)
  • 多标签表达
  • 数据准备
  • 示例