【发布时间】: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()
【问题讨论】:
-
您可以在 order() 步骤中使用 local() 的示例,如:tinkerpop.apache.org/docs/current/reference/#local-step
标签: gremlin