Вот несколько способов приблизиться к нему. Во-первых, вы можете просто использовать свой код как есть, а затем 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 будут работать на больше, чем вы ожидаете , и вы можете просто сделать by('timestamp')
для Map
, а также Element
.
Я думаю, что более читабельный однако подход будет go с таким подходом:
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(...))
в зависимости от характера вашей схемы, но, надеюсь, вы поймете, что я пытаюсь делать там.