Подсчитать все возможные пути в базе данных графа для нескольких вершин - PullRequest
1 голос
/ 23 февраля 2020

У меня есть граф db, и мне нужно получить все вершины, у которых нет ребер, и посчитать, сколько вершин ведет к каждой из них

ex.

У меня 8 вершины A, B1, B2, D, X, Y1, Y2, Z

D-> B1-> A

B2-> A

Z-> Y1- > X

Y2-> X

Я хотел бы получить список, который будет иметь [A = 3, X = 3] плюс свойства каждой вершины

, почему 3? потому что вы можете добраться до A из D, B1 и B2

, что у меня пока есть, чтобы получить количество путей одной вершины, но выполнение этого запроса для каждой является немного медленным, поэтому я бы хотел один запрос, который даст мне всю эту информацию

g.V().not(outE()).repeat(inE().outV().simplePath()).emit().dedup().count().next()

1 Ответ

3 голосов
/ 23 февраля 2020

Похоже, у вас был правильный запрос, просто нужно добавить к нему group:

g.V().not(outE()).group()
.by(label())
.by(repeat(inE().outV().simplePath()).emit().dedup().count())

Я проверял его здесь . кажется, работает как ожидалось

...