Gremlin 地图结果上的小精灵顺序
我有以下疑问:Gremlin 地图结果上的小精灵顺序,gremlin,janusgraph,amazon-neptune,Gremlin,Janusgraph,Amazon Neptune,我有以下疑问: g.V('1') .union( out('R1') .project('timestamp', 'data') .by('completionDate') .by(valueMap().by(unfold())) out('R2') .project('timestamp', 'data') .b
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('timestamp'),但这只适用于遍历,UNION返回一个映射对象。这里有几种方法可以实现它。首先,您可以按原样使用代码,然后按“时间戳”使用
order()
:
请注意,区别在于select()
要排序的Map
中的键。3.4.5之后的版本可以使用,您只需通过('timestamp')对映射以及元素执行
然而,我认为更具可读性的方法是采用这种方法:
g.V('1').
out('R1','R2').
project('timestamp', 'data').
by(coalesce(values('endDate'), values('completionDate'))).
by(valueMap().by(unfold())).
order().by(select('timestamp'))
您可能需要通过(合并(…)
来增强,具体取决于您的模式的性质,但希望您了解我在那里尝试做什么。第一种方法非常有效。非常感谢。我不完全确定第二种方法。R1或R2上没有名为“timestamp”的属性。所以我真的不明白按时间戳排序在这种情况下是如何工作的。我将测试并返回另一条评论。对不起,我修改了第二个查询。
g.V('1').
out('R1','R2').
project('timestamp', 'data').
by(coalesce(values('endDate'), values('completionDate'))).
by(valueMap().by(unfold())).
order().by(select('timestamp'))