Gremlin удаляет все вершины

Я знаю, как удалить вершину по идентификатору, но мне нужно удалить несколько вершин (очистить БД).

Удаление 1 v выглядит следующим образом:

ver = g.v(1)
g.removeVertex(ver)

Ответы

Ответ 1

вы можете попробовать

g.V.each{g.removeVertex(it)}
g.commit()

Ответ 2

В более поздних терминах, начиная с Gremlin 2.3.0, удаление всех вершин лучше всего выполнить с помощью:

g.V.remove()

ОБНОВЛЕНИЕ: Для версии Gremlin 3.x вы должны использовать drop():

gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().drop().iterate()
gremlin> graph
==>tinkergraph[vertices:0 edges:0]

Обратите внимание, что drop() не выполняет итерацию Traversal автоматически, как remove(), поэтому вы должны явно вызвать iterate() для удаления. Итерация в Gremlin Console подробно обсуждается в этом руководстве.

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

 JanusGraphFactory.drop(graph)

где "graph" - это экземпляр JanusGraph вы хотите очистить.

Ответ 3

Если вы используете Tinkerpop3 (Titan 1.0.0), как сказано ранее, команда:

g.V().drop()

Почему это не сработало для меня

Это работает, только если вы используете интерактивный интерфейс REPL Gremlin. Зачем? drop возвращает итератор, который должен быть перенесен для применения и. Интерфейс Gremlin REPL автоматически выполняет итерации по возвращенным итераторам.

Как я исправил его

Если (например, я) вы используете интерфейс HTTP или WebSocket для Gremlin, вы должны явно перебирать возвращаемый итератор:

g.V().drop().iterate()

Не забывайте...

... для совершения транзакции. В Titan транзакции открываются неявно, но должен быть явно закрыт:

g.tx().commit()

Ответ 4

Вы можете сделать это следующим образом:

graph.shutdown();
TitanCleanup.clear(graph);

Ответ 6

В TinkerPop3:

Функция drop() - step (filter/sideEffect) используется для удаления элемента и свойств из графика (т.е. удаления).

g.V().drop()

Ответ 7

В TinkerPop3 с Titan-1.0.0

g.V().drop()
g.tx().commit()   (commit the changes)

работает для меня. Вы можете попробовать