Мой контекст:
- gremlin-python
- AWS Neptune
Мой вопрос:
1) Могу ли я уронитьвершины и ребра рекурсивно в одной транзакции, учитывая, что у меня есть все конкретные идентификаторы вершин и ребер, которые я хочу отбросить?Цель состоит в том, чтобы написать функцию python, которая оценивает каждое ребро и определяет, нужно ли его отбрасывать, и связывает запрос gremlin для его отбрасывания.
Например:
идентификаторы вершин для удаления:
'vertex1', 'vertex2', 'vertex3'
идентификаторы ребер для удаления:
'edge1', 'edge2', 'edge3'
Пример функции python дляцепочка на g будет выглядеть следующим образом:
def chain_drop(g, vertex_id):
g = g.V(vertex_id).drop()
return g
Цепной запрос, который я хотел бы выполнить в виде одной транзакции, в идеале должен выглядеть примерно так:
g.E('edge1').drop()
.V('vertex1').drop()
.E('edge3').drop()
.V('vertex3').drop()
.iterate() # execute all these queries as one transaction
Выше не работает... И кажется, что я не могу .E ('someid') в середине моего запроса gremlin.
Немного не по теме, но моя лучшая попытка (не рекурсивная) будет выглядеть примерно так:
g.E('edge1', 'edge2', 'edge3').as_('edges')
.V('vertex1', 'vertex2', 'vertex3').as_('vertices')
.union(__.select('edges'),
__.select('vertices'))
.drop()
.iterate()
Любая помощь высоко ценится!