neo4j 遍历nodes(p) ,找到每个节点的关系R下的节点B的属性age
时间: 2024-02-22 08:58:44 浏览: 23
您好!针对您的问题,可以使用Cypher查询语言来实现:
```cypher
MATCH (p)-[R]->(B)
RETURN B.age
```
这个查询语句会遍历所有的节点 `p`,找到 `p` 的每个关系 `R`,然后找到与 `R` 相连的节点 `B`,最后返回 `B` 节点的属性 `age`。
相关问题
NEO4j里面怎么随机展示50个节点并保证每种标签的节点都出现
可以使用Cypher查询语句来实现在Neo4j中随机展示50个节点并保证每种标签的节点都出现。具体查询语句如下:
```
MATCH (n)
WITH n, labels(n) as labels
ORDER BY rand()
WITH {label: head(labels), node: n} as data
WITH collect(data) as nodes
UNWIND nodes as node
WITH collect(node.node) as nodesByLabel, node.label as label
WITH nodesByLabel[0..4] as nodesToReturn
UNWIND nodesToReturn as node
RETURN node
```
上述查询语句使用了rand()函数对节点进行随机排序,然后使用collect()函数将每个节点和其标签打包成一个对象,并使用head()函数取出每个节点的第一个标签作为该节点的标签。接着再次使用collect()函数将所有节点打包成一个数组,并按照标签分组。最后使用UNWIND函数将每个标签组中的前5个节点展开,最终返回50个节点,其中每个标签都至少有一个节点被展示。
neo4j遍历生成树
在Neo4j中,可以使用遍历算法来生成树。下面是一个示例代码,演示如何使用Neo4j遍历框架从ConceptNet提取路径并生成树:
```python
from neo4j import GraphDatabase
# 连接到Neo4j数据库
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver(uri, auth=("neo4j", "password"))
# 定义一个函数来执行遍历并生成树
def generate_tree(start_node):
with driver.session() as session:
result = session.run(
"""
MATCH path = (start)-[:RELATIONSHIP*]->(end)
WHERE start.name = $start_node
RETURN path
""",
start_node=start_node
)
for record in result:
path = record["path"]
print(path)
# 调用函数来生成树
generate_tree("start_node")
# 关闭数据库连接
driver.close()
```
请注意,上述代码中的"bolt://localhost:7687"是Neo4j数据库的URI,"neo4j"是用户名,"password"是密码。您需要根据您的实际情况进行相应的更改。