Gremlin 如何从顶点获取具有边特性最大值的边

Gremlin 如何从顶点获取具有边特性最大值的边,gremlin,tinkerpop,tinkerpop3,Gremlin,Tinkerpop,Tinkerpop3,场景:找到员工顶点中经验最多的工作,该顶点具有超出edgeWorkedAs,并且具有edge属性workedForYears,该属性具有该工作的多年经验 我用过 g.V().has('EmployeeId','1234').outE('WorkedAs').values('workedForYears').max() 这将返回一个整数。有什么方法可以获得边缘吗?您可以使用order().by().limit(1)模式,而不是max(),这样您就不会将遍历中的项转换为整数 g.V().has('

场景:找到员工顶点中经验最多的工作,该顶点具有超出edge
WorkedAs
,并且具有edge属性
workedForYears
,该属性具有该工作的多年经验

我用过

g.V().has('EmployeeId','1234').outE('WorkedAs').values('workedForYears').max()
这将返回一个整数。有什么方法可以获得边缘吗?

您可以使用
order().by().limit(1)
模式,而不是
max()
,这样您就不会将遍历中的项转换为整数

g.V().has('EmployeeId','1234').outE('WorkedAs').as('e') \
     .order().by('workedForYears', decr).limit(1).select('e')

请注意,我使用了
as()
步骤()来标记Gremlin遍历中的特定点。然后在其他处理之后,您可以通过使用
select()

跳回到特定的位置。您不需要跳回到“e”,实际上您仍然在“e”。哦,谢谢您,Jason,但是考虑到我在1000多条边的更大范围内这样做,这会影响处理时间吗,当我们使用极限步骤时,它会存储订单中的所有1000个结果,并给出第一个结果。虽然在这种情况下,如果一名员工做我刚才要求的1000份工作,那么我可以在超过1000条边的数据上使用它,这将是愚蠢的