g.addV('l1').
property(id, 12347).
property('submit_time', new Date('Wed May14 10:00:00 PDT 2019')).
addV('l1').
property(id, 4522323).
property('submit_time', new Date('Wed May15 11:00:00 PDT 2019')).
addV('l1').
property(id, 2355208312).
property('submit_time', new Date('Wed May15 11:00:00 PDT 2019')).
addV('l3').
property(id, 45678).
property('start_time', new Date('Fri Apr 24 07:01:36 PDT 2019')).
addV('l3').
property(id, 67892).
property('start_time', new Date('Fri Apr 24 07:01:36 PDT 2019')).
addV('l3').
property(id, 678954).
property('start_time', new Date('Fri Apr 26 23:01:36 PDT 2019')).
property('condition', "somevalue").
addE('e1').
from(V(12347)).
to(V(45678)).
addE('e1').
from(V(12347)).
to(V(67892)).
addE('e1').
from(V(4522323)).
to(V(678954)).
addE('e1').
from(V(2355208312)).
to(V(45678)).
iterate()
Одна l1
вершина может быть связана с ребром (e1
) для нескольких различных l3
вершин. Я пытаюсь агрегировать приведенный выше сценарий на основе свойства submit_time
из l1
. Я пробовал следующий запрос.
g.V().hasLabel("l1").
group().
by(map {(it.get().value("submit_time").getYear() + 1900) + "/" +
(it.get().value("submit_time").getMonth() + 1) + "/" +
it.get().value("submit_time").getDate()}).
unfold().
project('submitdate','job','jobdesc').
by(keys).
by(values).
by(select(values).unfold().out('e1').has("condition","somevalue").fold()).
order(local).
by(keys, incr)
Это приводит меня к следующему результату.
==>[job:[v[12347]],jobdesc:[],submitdate:2019/5/14]
==>[job:[v[2355208312],v[4522323]],jobdesc:[v[678954]],submitdate:2019/5/15]
В приведенном выше результате он агрегирует на основе submitdate
и возвращает мне соответствующую l1
вершину как job
после агрегации, однако мой jobdesc
пуст, поскольку он не удовлетворяет условию "имеет" .has("condition","somevalue")
.
В 1-м результате, хотя вершина v[12347]
рассматривается в агрегации и имеет ребро v[45678]
и v[67892]
, они не удовлетворяют условию "имеет", поэтому моя jobdesc
пуста. Аналогично, во втором результате одна из моих вершин (v[678954]
) удовлетворяет вышеуказанному условию.
Может кто-нибудь, пожалуйста, помогите мне получить значение по умолчанию, например. пустой массив для jobdesc
для каждой вершины задания, если он не удовлетворяет условию и рассматривается при агрегировании?
Ожидаемый результат
==>[job:[v[12347]],jobdesc:[[]],submitdate:2019/5/14]
==>[job:[v[2355208312],v[4522323]],jobdesc:[[],v[678954]],submitdate:2019/5/15]
Например: v[2355208312]
рассматривается в агрегировании для submitdate
2019/5/14
, но для него нет jobdesc
, поэтому я не могу отобразить индекс для каждого задания и его соответствующего jobdesc
.