该模型用于记录所有浏览历史记录
我如何summation/average/find_max/find_min
所有页面浏览到第2页
预期的答案是
page2
:100 + 200 + 300 + 500 page2
:500 page2
:100 page1
到page2
的平均浏览时间:100 任何人都可以给我一些疑问来解决上述问题。
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))
答案 0 :(得分:1)
一个简单的例子,您需要适应以满足您的需求,在此处测试控制台:http://console.neo4j.org/?id=rs4ado
示例1:总结所有关键属性“时间”:
MATCH (p:Page { id:2 })<-[r:LINKS_TO]-(referer)
RETURN sum(r.time) AS totalTime
平均而言,将sum
替换为avg
,min
和max
相同。
示例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