我在使用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()