Допустим, у меня есть эти образцы данных
Vertex[type: Person, name: Foo] ---hasPet---> Vertex[type: Dog, name: Dog1]
Vertex[type: Person, name: Bar] ---hasPet---> Vertex[type: Cat, name: Cat1]
Vertex[type: Person, name: Bazz] ---hasPet---> Vertex[type: Dog, name: Dog2]
Vertex[type: Person, name: Bazz] ---hasPet---> Vertex[type: Dog, name: Dog3]
Затем я хотел найти любую вершину типа Person, у которой есть хотя бы домашнее животное, которым является собака.
Как найти все эти вершины типа Person, не проходя через все вершины типа не человека? совпадений, поскольку Bazz
может иметь тысячи других домашних животных.
Мой запрос:
g.traversal().V().has("type", "Person").repeat(out("hasPet").simplePath()).until(has("type", "Dog")).simplePath().in().valueMap("name")
И вот результат:
[Foo]
[Bazz]
[Bazz]
Мне нравится:
[Foo]
[Bazz]