neo4j查询鲁迅的一度关联
时间: 2023-11-06 11:54:37 浏览: 47
假设你已经将鲁迅的节点标记为 "鲁迅",并且与他存在一度关联的节点标记为 "一度关联",可以使用以下 Cypher 查询语句来查找与鲁迅存在一度关联的节点:
```
MATCH (鲁迅)-[:关联]->(一度关联)
RETURN 一度关联
```
如果你想查找与鲁迅存在多度关联的节点,可以替换关系类型 "关联" 为更通用的关系类型 "任意关系",并使用路径模式来匹配多度关联:
```
MATCH (鲁迅)-[*1..N]->(多度关联)
RETURN DISTINCT 多度关联
```
其中,N 为你想要查找的最大关联度数。这个查询语句将返回所有与鲁迅存在多度关联的节点,去重后返回。
相关问题
写一段neo4j的foreach查询关联关系的代码
假设我们有一个节点类型为Person,节点属性为name,以及一个关系类型为FRIEND_OF,关系属性为since,其中一个人的名字为Alice。我们想要查询所有和Alice有关系的人及关系属性。可以使用以下的Cypher语句:
```
MATCH (p:Person {name: "Alice"})-[:FRIEND_OF]->(friend)
FOREACH (rel IN relationships(p, "outgoing") |
MERGE (friend)-[:FRIEND_OF]->(rel.endNode())
SET friend.since = rel.since
)
RETURN friend.name, friend.since
```
这个查询首先匹配名为Alice的Person节点,然后在它的所有FRIEND_OF关系中循环。对于每个循环中的关系,它会创建一个新的FRIEND_OF关系,将friend节点与它的终止节点相连,并将since属性设置为关系的since属性。最后,查询返回所有friend节点的名称和since属性。
注意,这个查询使用了FOREACH子句来循环关系,而不是使用Cypher的标准迭代器。这是因为FOREACH子句允许我们在循环过程中更改图形,而迭代器不允许这样做。
neo4j查询节点
要查询Neo4j中的节点,可以使用Cypher查询语言。以下是一个简单的例子,演示如何查询具有特定标签的所有节点:
```
MATCH (n:Label)
RETURN n;
```
其中,“Label”是节点的标签。如果要查询具有特定属性和属性值的节点,可以使用以下查询:
```
MATCH (n:Label {property: value})
RETURN n;
```
其中,“Label”是节点的标签,“property”是节点的属性,“value”是属性的值。