У меня большие проблемы с добавлением свойств к ребру с помощью оболочки gremlin_python
.
Я могу создать ребро, вот так:
eid1='123'
eid2='456'
edge = g.V().has('eid', eid1).addE('transaction').to(g.V().has('entity_id',eid2)).next()
Но добавление свойств к краю не работает. Как в: код выполняется без ошибок, но на самом ребре не происходит никаких изменений, поэтому, когда я после вызова g.E(edge).valueMap.toList()
возвращает пустой список.
g.E(edge).property('foo','bar').iterate() <-- I've also tried this without iterate.
Это также не работает, если я создаю узел и добавляю свойство в той же строке кода.
Тот же код, но исполняемый в консоли gremlin, работает как положено. после создания ребра и присвоения свойства:
gremlin> g.E(edge).valueMap().toList()
==>{foo=bar}
Любая помощь здесь будет принята с благодарностью.
Обновление
Мне не удалось заставить это работать, используя оболочку python для объекта обхода графа, вместо этого я пропустил код через клиент, который работает, как и ожидалось. Но это обходной путь, а не решение.
gremlin_client = client.Client('ws://localhost:8182/gremlin', 'g')
query = "g.V().has('eid', '123').addE('transaction').to(g.V().has('eid','456')).property('foo','bar').next()"
gremlin_client.submit(query).all().result()