要编写一个Cypher查询,仅返回图中的子集,您可以使用Cypher的子集功能。以下是一个包含代码示例的解决方法:
假设我们有一个包含“Person”和“Friend”节点的图,其中“Person”节点有“name”属性,表示人的姓名,而“Friend”节点表示人与人之间的友谊关系。
首先,我们创建一个包含节点和关系的示例图:
CREATE (:Person {name: 'Alice'})-[:FRIEND]->(:Person {name: 'Bob'})
CREATE (:Person {name: 'Charlie'})-[:FRIEND]->(:Person {name: 'David'})
CREATE (:Person {name: 'Eve'})-[:FRIEND]->(:Person {name: 'Frank'})
然后,我们可以编写一个查询来仅返回其中的一个子集。例如,我们只想返回名字为“Alice”和“Bob”的人及其之间的友谊关系:
MATCH (p1:Person)-[f:FRIEND]-(p2:Person)
WHERE p1.name = 'Alice' AND p2.name = 'Bob'
RETURN p1, f, p2
这个查询将返回一个子图,其中只包含名为“Alice”和“Bob”的人及其之间的友谊关系。
通过修改WHERE子句中的条件,您可以根据自己的需求返回不同的子集。