Пример графика : Тинкер Модерн
Запрос : Найти всех прямых друзей (person
Вершина) Марко и (союза)все software
во втором прыжке.
Неудачные попытки:
Общий запрос для людей первого уровня:
g.V(1).hasLabel("person").repeat(both()).times(1).emit(hasLabel("person")).hasLabel("person").values("name")
Общий запрос для программного обеспечения второго уровня / прыжка:
g.V(1).hasLabel("person").repeat(both()).times(2).emit(hasLabel("software")).hasLabel("software").values("name")
Попытка объединить два запроса:
g.V(1).hasLabel("person").repeat(both()).times(1).emit(hasLabel("person")).hasLabel("person").repeat(both()).times(2).emit(hasLabel("software")).hasLabel("software").values("name")
Я действительно не понимал, как работает объединение, потому что это не объединение данных.
g.V(1).union().V(2)
g.V(1).union(V(2))
Лучшее, что я получил до сих пор, но я хочу, чтобы у меня была некоторая способность делать это (Марко подключен к человеку И / ИЛИ Марко подключенна программное обеспечение):
gremlin> g.V(1).store('x').V(2).store('y').cap('x', 'y')
==>[x:[v[1]],y:[v[2]]]