Допустим, я хочу получить несколько вершин из своей базы данных:
g.V(1, 2, 3)
А затем у меня есть другой набор вершин:
g.V(4, 5, 6)
Представьте, что это не просто g.V()
, но некоторые более сложные обходы, чтобы получить мои вершины. Но обход должен начинаться с V()
, потому что я хочу выбрать из всех своих узлов.
Давайте также предположим, что я хочу сделать это несколько раз. Поэтому я мог бы объединить 7 разных наборов результатов. Каждый из них может иметь совершенно разные способы получения своих результатов.
Теперь я хочу объединить эти два результата в один набор результатов. Моя первая мысль была такой:
g.V(1, 2, 3).fold().as('x').V(4, 5, 6).fold().as('x').select(all, 'x').unfold()
Но это не работает. Второй вызов fold
очистит мои «локальные переменные», потому что это барьерный шаг.
Моя текущая попытка такая:
g.V(1, 2, 3).fold().union(identity(), V(4, 5, 6).fold()).unfold()
Это работает, но выглядит немного слишком сложно. Если я хочу повторить это 7 раз, это приведет к очень сложному запросу.
Есть ли лучший способ выполнить sh простое объединение результатов двух разных запросов?