Правильная обработка удаления вершин в AWS Neptune Gremlin Python - PullRequest
0 голосов
/ 04 октября 2018

При удалении вершины в AWS Neptune с использованием gremlin_python выдается ошибка, даже если вершина фактически удалена (не могу найти ее, когда я запрашиваю ее позже).

Мой запрос на удаление вершины неверен?

delete_vertex_q = "g.V(%s).drop().next()"%(v_id)
delete_vertex_r = eval(delete_vertex_q)

после этого, когда я снова пытаюсь найти вершину:
print(g.V('<vertex_id>').next())
Я получаю StopIteration ошибку.

Как правильно обрабатывать удаление и проверку вершин в AWS Neptune Gremlin ?

1 Ответ

0 голосов
/ 04 октября 2018

Вам нужно рассматривать обходы как поток, и когда этот поток пуст и вы пытаетесь получить следующий, возникает ошибка.Если вы отправляете сценарии в Нептун, то g.V(id).hasNext() - это синтаксис, который даст вам логический результат.Если вы используете gremlin-python и пишете Gremlin на нативном Python, вам нужно сделать что-то вроде:

len(g.V(id).toList()) == 0

или, возможно:

g.V(id).count().next() == 0

Обратите внимание, что с (скоробыть выпущенным) gremlin-python 3.2.10 / 3.3.4 вы можете сделать hasNext() в Python напрямую, а параметры, описанные выше, можно игнорировать.

...