地图结果上的 Gremlin 顺序
Gremlin order on Map results
我有以下查询:
g.V('1')
.union(
out('R1')
.project('timestamp', 'data')
.by('completionDate')
.by(valueMap().by(unfold()))
out('R2')
.project('timestamp', 'data')
.by('endDate')
.by(valueMap().by(unfold()))
)
如何按时间戳对 UNION 结果进行排序?
我试过使用“.order().by('timestamp')”,但这只适用于遍历和 UNION returns 一个 MAP 对象。
这里有几种处理方法。首先,您可以按原样使用您的代码,然后 "timestamp":
order()
g.V('1').
union(out('R1').
project('timestamp', 'data').
by('completionDate').
by(valueMap().by(unfold())),
out('R2').
project('timestamp', 'data').
by('endDate').
by(valueMap().by(unfold()))).
order().by(select('timestamp'))
请注意,区别在于 select()
您要排序的 Map
中的键。 3.4.5 之后的版本将工作 more as you expect,您可以简单地为 Map
和 Element
.
执行 by('timestamp')
不过,我认为一种更具可读性的方法是采用这种方法:
g.V('1').
out('R1','R2').
project('timestamp', 'data').
by(coalesce(values('endDate'), values('completionDate'))).
by(valueMap().by(unfold())).
order().by(select('timestamp'))
您可能需要根据您的模式的性质来增强 by(coalesce(...))
,但希望您了解我正在尝试做的事情。
我有以下查询:
g.V('1')
.union(
out('R1')
.project('timestamp', 'data')
.by('completionDate')
.by(valueMap().by(unfold()))
out('R2')
.project('timestamp', 'data')
.by('endDate')
.by(valueMap().by(unfold()))
)
如何按时间戳对 UNION 结果进行排序? 我试过使用“.order().by('timestamp')”,但这只适用于遍历和 UNION returns 一个 MAP 对象。
这里有几种处理方法。首先,您可以按原样使用您的代码,然后 "timestamp":
order()
g.V('1').
union(out('R1').
project('timestamp', 'data').
by('completionDate').
by(valueMap().by(unfold())),
out('R2').
project('timestamp', 'data').
by('endDate').
by(valueMap().by(unfold()))).
order().by(select('timestamp'))
请注意,区别在于 select()
您要排序的 Map
中的键。 3.4.5 之后的版本将工作 more as you expect,您可以简单地为 Map
和 Element
.
by('timestamp')
不过,我认为一种更具可读性的方法是采用这种方法:
g.V('1').
out('R1','R2').
project('timestamp', 'data').
by(coalesce(values('endDate'), values('completionDate'))).
by(valueMap().by(unfold())).
order().by(select('timestamp'))
您可能需要根据您的模式的性质来增强 by(coalesce(...))
,但希望您了解我正在尝试做的事情。