我有不同时间戳的重复边,需要获取最新的时间戳边,正尝试通过以下查询来获取。无法使用.max()
,因为它适用于数字。还有其他选择吗?
g.V().has('streamPath','/local/Prod/SupportBI/Prod/Staging/Integration/Chat/MSaaSChatCompleted.ss').as('ParentStream').outE('generate').order().by('timestamp', decr).values('timestamp')
样本输出
[
"2018-07-10T20:18:57",
"2018-07-10T20:18:57",
"2018-07-10T20:16:39",
"2018-07-10T20:16:39",
"2018-07-10T20:07:51",
"2018-07-10T16:18:56",
我的实际查询:
g.V().has('streamPath','/Chat/Completed.ss').as('ParentStream').outE('generate').as('Edges').map(select('Edges').inV()).as ('NextStream').select('ParentStream', 'NextStream','Edges').simplePath()
我得到重复的边缘(时间戳,jobid,id不同,属性重置相同)。需要采用具有最新时间戳的最近边缘。
答案 0 :(得分:0)
如果您有这个:
g.V().has('streamPath','/local/Prod/SupportBI/Prod/Staging/Integration/Chat/MSaaSChatCompleted.ss').as('ParentStream').
outE('generate').
order().
by('timestamp', decr).
values('timestamp')
难道您不能在其中加上limit(1)
来获得第一个,因为您首先为最近的时间戳记订购了它。
作为补充,在TinkerPop 3.4.0(此答案发布时尚未发布)中,您可以将max()
与任何Comparable
一起使用:
gremlin> g.V().values('name').max()
==>vadas