在Neo4j中,Cypher是一種用于查詢圖形數據庫的語言
MATCH
子句查找圖中的路徑:MATCH (a)-[r]->(b)
RETURN a, r, b
這個查詢將返回所有從節點a到節點b的路徑,包括關系r。
WHERE
子句過濾路徑:MATCH (a)-[r]->(b)
WHERE r.type = 'KNOWS' AND a.name = 'Alice' AND b.name = 'Bob'
RETURN a, r, b
這個查詢將只返回從Alice到Bob的"KNOWS"關系路徑。
WITH
子句處理路徑:MATCH (a)-[r]->(b)
WITH a, r, b, [r.property1, r.property2] as path_properties
RETURN a, b, path_properties
這個查詢將返回節點a、b以及關系r的屬性(property1和property2),并將它們名為path_properties的列表返回。
CALL
子句執行路徑操作:MATCH (a)-[r]->(b)
WITH a, b, r
CALL apoc.path.expandConfig(a, b, {properties: true}) YIELD path
RETURN path
這個查詢將使用APOC庫中的apoc.path.expandConfig
函數擴展從節點a到節點b的所有可能路徑,并返回這些路徑。
聚合
函數處理路徑:MATCH (a)-[r]->(b)
WITH a, b, COUNT(r) as num_relationships
RETURN a, b, num_relationships
這個查詢將返回節點a、b以及它們之間的關系數量。
這些示例展示了如何在Cypher中執行基本的路徑操作。您可以根據需要調整查詢以滿足您的需求。