【问题标题】:How do I calculate all the relationship properties with py2neo or cypher query language如何使用 py2neo 或 cypher 查询语言计算所有关系属性
【发布时间】:2015-06-02 08:01:32
【问题描述】:

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

我如何summation/average/find_max/find_min 将所有页面浏览到第 2 页

预期的答案是

  • 将所有浏览时间求和到page2:100+200+300+500
  • find_max 浏览时间到page2 : 500
  • find_min 浏览时间到page2 : 100
  • page1page2 的平均浏览时间: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))

【问题讨论】:

  • SO 不是代码编写服务。尝试自己解决问题,如果遇到任何困难,请在此处发布。

标签: neo4j cypher py2neo


【解决方案1】:

一个简单的例子,你需要适应你的需要,在这里测试控制台:http://console.neo4j.org/?id=rs4ado

示例 1: 汇总所有键入“时间”的关系属性:

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

【讨论】:

    猜你喜欢
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多