Как удалить ребро в orient db по запросу gremlin?

Хотите удалить ребро между двумя вершинами. Для этого я пробовал что-то вроде этого. Это не работает.

g.traversal().V(reln.getStartNodeId()).bothE(oldRelationship)
.where(__.otherV().hasId(reln.getEndNodeId())).drop().iterate();

синтаксис выглядит нормально ... проблема в том, что край не опускается, или вы получаете сообщение об ошибке? какой результат вы получите, если удалите drop() из этого запроса?

stephen mallette 13.09.2018 19:44

Я не получаю никаких сообщений об ошибках, но край не удаляется из БД. Хочу сбросить край из БД.

Nandita Sahu 13.09.2018 19:48

Тот же запрос работает для Neo4j, но не работает в OrientDB

Nandita Sahu 13.09.2018 19:49

А как насчет другого моего вопроса: какой результат вы получите, если удалите drop () из этого запроса?

stephen mallette 13.09.2018 19:59

GraphTraversal <Вершина, Вершина>

Nandita Sahu 13.09.2018 20:14

ну - я имею в виду - итерация обхода с next() .... возвращает ли он Edge, который вы хотите удалить? если нет, то есть проблема в ваших данных (или параметрах, которые вы передаете. Если он возвращает Edge для удаления, то это ошибка в реализации OrientDB.

stephen mallette 13.09.2018 20:22

Перед удалением я проверяю, является ли край der или нет, используя g.traversal (). V (reln.getStartNodeId ()). BothE (reln.getRelType‌ ()). Where (__. OtherV (‌) .hasId (reln. getEndN‌ odeId ())). hasNext (), и этот работает нормально, только не может сбросить

Nandita Sahu 13.09.2018 20:40

Тогда я бы предположил, что это ошибка в реализации OrientDB. возможно, единственное, что вы можете попробовать, - это напрямую проверить g.E(edgeId).drop(), чтобы убедиться, что это проблема с конкретным краем - это может быть полезной информацией для тех, кто пытается выяснить, как исправить эту проблему.

stephen mallette 13.09.2018 20:43
0
8
127
0

Другие вопросы по теме