Я довольно долго пытаюсь решить свою проблему, которая похожа на
У меня есть график, в котором определены ограничения множественности. Когда создается новое ребро, либо может быть создано новое ребро, либо оно может нарушать ограничение множественности из-за изменения данных.
Теперь, когда данные изменились, мне нужно удалить / отбросить существующий край и создать новый. Это моя проблема. Я не могу бросить и создать край за один раз.
То, что я пытался, это то, что я отправляю запрос на сервер gremlin через модуль node-gremlin для nodejs. Отношение, которое я пытаюсь создать, - [продавец] -1 - (продает) - * -> [продукт]. В данном сценарии только 1 торговец может продать товар. когда какой-то другой торговец начинает продавать товар. Мне нужно обновить его, чтобы отразить новые отношения между ними. Может случиться так, что раньше его никто не продавал, поэтому нужно создать только новое преимущество. наконец, созданное ребро возвращается.
29 Jun 13:41:04 - [Error: An edge with the given label already exists on the in-vertex and the label [sells] is in-unique (Error 597)]
29 Jun
13:41:04 - { text:
'g.V().has(sIdKey,sIdVal).inE(edgeLabel).drop();graph.tx().commit();g.V().has(fIdKey,fIdVal).outE(edgeLabel).inV().has(sIdKey,sIdVal).tryNext().orElseGet{g.V().has(fIdKey,fIdVal).next().addEdge(edgeLabel,g.V().has(sIdKey,sIdVal).next());};',
params:
{ fIdKey: 'merchant_id',
fIdVal: 20230,
sIdKey: 'product_id',
sIdVal: 184504,
edgeLabel: 'sells' } }
Поток, которого я пытаюсь достичь, таков
Найдите, присутствует ли существующее ребро -> удалите существующее ребро -> зафиксируйте команду удаления ребра -> создайте новое ребро -> зафиксируйте новое ребро.
В приведенном выше запросе я не написал оператор фиксации для добавления ребер, потому что я совершаю массовое добавление ребер.
Я не могу понять, как продолжить решение этой проблемы. любая помощь была бы замечательной.