【问题标题】:How to get the sum of a edge field in graph database using gremlin?如何使用 gremlin 获取图形数据库中边缘字段的总和?
【发布时间】:2016-07-11 14:21:58
【问题描述】:

我有两个名为 - UserName 和 CompanyName 的顶点,每当用户访问任何公司时,我都会增加边缘字段(即 pageVisit)。对于个别结果,我得到了那些 pageVisit 值,但我怎样才能得到所有用户 pageVisit 的总和?

我想在公司页面上显示总页面访问量,我没有找到任何添加边缘值的方法。

【问题讨论】:

    标签: graph gremlin titan vertices


    【解决方案1】:

    您可以使用sum() step:

    gremlin> graph = TinkerGraph.open()
    ==>tinkergraph[vertices:0 edges:0]
    gremlin> vUser1 = graph.addVertex("UserName","user1")
    ==>v[0]
    gremlin> vUser2 = graph.addVertex("UserName","user2")
    ==>v[2]
    gremlin> vCompany = graph.addVertex("CompanyName","Company")
    ==>v[4]
    gremlin> vUser1.addEdge('visits',vCompany,'pageVisit',10)
    ==>e[6][0-visits->4]
    gremlin> vUser2.addEdge('visits',vCompany,'pageVisit',20)
    ==>e[7][2-visits->4]
    gremlin> g = graph.traversal()
    ==>graphtraversalsource[tinkergraph[vertices:3 edges:2], standard]
    gremlin> g.V(vCompany).inE('visits').values('pageVisit').sum()
    ==>30
    

    【讨论】:

    • 我正在使用 Rexster 来添加 pageVisit 计数,因此它保存为字符串。如何将 sum() 运算符与字符串值一起使用?
    • 我不认为将其存储为字符串是一个好主意。您应该以本机类型存储数据。将该字符串写入数据库时​​将其转换为数字。另请注意,此答案采用 TinkerPop 3.x 语法,并且 TinkerPop 3.x 中没有 Rexster - 您可以使用 Rexster 的替代品 Gremlin Server:tinkerpop.apache.org/docs/3.1.1-incubating/reference/…
    猜你喜欢
    • 1970-01-01
    • 2017-09-26
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    相关资源
    最近更新 更多