如何使用 py2neo 或 cypher 查询语言计算所有关系属性

How do I calculate all the relationship properties with py2neo or cypher query language

该模型用于记录所有浏览历史

我怎么能summation/average/find_max/find_min所有页面都浏览到第2页

预期的答案是

任何人都可以给我一些问题来实现上述问题。

cypher 查询语法对我来说真的很可怜。

创建节点和关系的代码

page1 = Node("Page", name="page1")
page2 = Node("Page", name="page2")
page3 = Node("Page", name="page3")
graph_db.create(neo4j.Path(page1, ("LINKS_TO", {"browsed_time": 200}), page2))
graph_db.create(neo4j.Path(page1, ("LINKS_TO", {"browsed_time": 100}), page2))
graph_db.create(neo4j.Path(page1, ("LINKS_TO", {"browsed_time": 300}), page2))
graph_db.create(neo4j.Path(page3, ("LINKS_TO", {"browsed_time": 500}), page2))

一个简单的示例,您需要进行调整以完全符合您的需求,在此处测试控制台:http://console.neo4j.org/?id=rs4ado

示例 1: 对键控的所有关系属性求和 "time":

MATCH (p:Page { id:2 })<-[r:LINKS_TO]-(referer)
RETURN sum(r.time) AS totalTime

对于平均值,将 sum 替换为 avgminmax 相同。

示例2:如果需要获取链接到Page2的页面节点,这里获取时间最多的,所以排序关系时间属性按降序排列

MATCH (p:Page { id:2 })
MATCH (p)<-[r:LINKS_TO]-(referer)
WITH r
ORDER BY r.time DESC 
LIMIT 1
RETURN startNode(r), r.time