List<Map<String, Object>> propertyList = g.V("V_ID") // Get the vertex
.outE().hasLabel("OUT_EDGE").as("E") // Get the outgoing edge as E
.inV().as("V") // Get the vertex(pointed by E) as V
.select("E", "V") // Select Edge E and Vertex V
.by(__.valueMap().with(WithOptions.tokens).unfold() // Get value map including tokens
.group().by(Column.keys).by(__.select(Column.values).unfold())) // Form key value pairs
.toList(); // Return the list of properties
ПРИМЕЧАНИЕ. Замените токены примеров строк ("V_ID", "OUT_EDGE") в соответствии с вашей реализацией
Приведенный выше запрос вернет все свойства ребер и его связанная вершина в java карте. Карта свойств также будет содержать токены (т. Е. Id, label).
Здесь я должен был сгруппировать и развернуть valueMap()
, так как valueMap()
по умолчанию оборачивает поле Value внутри массива, а я нет Мне нужно такое поведение, поскольку у меня есть все свойства с одним значением, поэтому нет смысла получать список, содержащий одно значение.
Теперь все свойства ребра и связанных вершин объединены и доступны с propertyList
.