Задавая вопросы о Gremlin, всегда лучше предоставить сценарий Gremlin, который может создать примерный график, чтобы его можно было вставить в сеанс консоли Gremlin.Таким образом, те, кто отвечает, могут проверить свои результаты.В этом случае я просто проведу пальцем по переписыванию вашего обхода, но я думаю, что вам нужно инвертировать то, как вы используете project()
, и вы получите гораздо более читаемый обход и тот, который делает то, что вы хотите:
out('childSolution').
project('childSolutions').
by(project('solution','originator','childProblem')
by(valueMap(true)).
by(out('writtenBy').valueMap(true))
by(out('childProblem').valueMap(true)))
С помощью project()
вы заранее указываете, какими должны быть ключи, а затем используете by()
, чтобы сказать, что должно быть в этих ключах.Результат этого обхода не совсем соответствует тому, что вы хотите, но я думаю, что я понял это по духу.Если вы хотите, чтобы он точно совпадал, то, возможно, будет лучше, если вы предоставите примерный график в своем вопросе.