全部產品
Search
文件中心

PolarDB:多標籤查詢

更新時間:Feb 14, 2025

標籤(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)