Требуется удалить этот подграф, если у меня есть runId
и appId
. Приложение может иметь несколько таких appId и, следовательно, должно быть удалено, только если к нему не прикреплено appId
.
Я пробовал запрос ниже для удаления подграфа, но удаляются только IO
и appRun
, iRecord
& oRecord
не будут сброшены. Это потому, что я потерял указатель гремлина? Так что вопрос в том, как удалить iRecord
и oRecord
.
Я планировал удалить appId
во втором вызове обхода. Так что я могу проверить, если appId
больше не подключен runId
и сбросить appId
при том же обходе.
db.getTraversal()
.V().has("aRun", "runId", runId).as("aRun")
.outE("hasIO")
.inV().hasLabel("io").as("io")
.sideEffect(outE("output").inV().has("oRecord").drop())
.sideEffect(inE("input").outV().has("iRecord").drop())
.sideEffect(select("aRun").drop())
.sideEffect(select("io").drop())
.iterate();
Я также попробовал версию ответа, предоставленную здесь: Ссылка
db.getTraversal().
V().has("aRun", "runId", runId)
emit().
repeat(out()).
fold().
unfold().
drop()
Но это удалит oRecord
, aRun
и io
, но не iRecord
. И вопрос о том, как сбросить appId
, остается.
Спасибо
пом. xml:
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-gremlin</artifactId>
<version>3.0.25</version>
</dependency>