【问题标题】:Choose Edge->Vertex based on largest Edge property value根据最大的 Edge 属性值选择 Edge->Vertex
【发布时间】:2021-12-26 20:53:18
【问题描述】:

我是 Gremlin 和 Graph DB 的新手,我还不能弄清楚。

我有V(part) -> E(version) ver: 1..n -> V(attributes)。 我的顶点“部分”可以有多个出边“版本”,不同的“ver”属性从 1 到 n,指向不同的顶点“属性”。例如,“part a”可能有两个“版本”边,一个具有属性 ver 1,另一个具有属性 ver 2,每个边指向不同的顶点。

对于我的图表中的每个“部分”,或者只是一个,我需要获取与最高边属性“ver”值连接的“属性”顶点。

g.addV("part").property("pn", 'p1').as('p').
addV("attributes").property("description", 'Part 1').as('a').
addE('version').property('ver', 1).from('p').to('a')

g.V().has('pn', 'p1').as('p).
addV("attributes").property("description", 'A better Part 1').as('a').
addE('version').property('ver', 2).from('p').to('a')

逻辑应该适用于更复杂的图表。

非常感谢任何帮助。 安德鲁

解决方案,感谢 HadoopMarc。

g.V().hasLabel('part').
local(outE('version').
      order().
        by('ver',desc).
      limit(1)).
inV().
path().
toList()

【问题讨论】:

标签: gremlin


【解决方案1】:

将讨论和更新的问题复制到答案中,以便其他人可以轻松找到解决方案。 local 步骤允许(对于每个起始顶点)找到所需的边(具有最新版本):

g.V().hasLabel('part').
local(outE('version').
      order().
        by('ver',desc).
      limit(1)).
inV().
path().
toList()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多