3

我想将属性添加到顶点属性。在 gremlin 中,我将属性“phone”添加到顶点属性“places”,其值为“place1”

g.V(v).properties('places').hasValue('place1').property('phone',"123456789")

在不使用事务提交的情况下工作正常。但是当我在java代码中使用这种方式时,它不起作用。那么在java代码中,如何给顶点属性添加属性呢?感谢您的帮助。

4

1 回答 1

5

你需要iterate()遍历。

g.V(v).properties('places').hasValue('place1').property('phone',"123456789").iterate()

一种思考方式:原始代码片段是查询,但您仍然需要执行它。

这是一个完整的 Gremlin 控制台示例,显示了差异。

gremlin> graph = TitanFactory.open('inmemory'); g = graph.traversal()
==>graphtraversalsource[standardtitangraph[inmemory:[127.0.0.1]], standard]
gremlin> v = graph.addVertex('name','jenny','places','home')
==>v[4264]
gremlin> g.V(v).properties('places').hasValue('home')
==>vp[places->home]
gremlin> g.V(v).properties('places').hasValue('home').property('phone','867-5309'); 'traversal was not iterated'
==>traversal was not iterated
gremlin> g.V(v).properties('places').hasValue('home').properties()
gremlin> g.V(v).properties('places').hasValue('home').property('phone','867-5309').iterate(); 'iterated!'
==>iterated!
gremlin> g.V(v).properties('places').hasValue('home').properties()
==>p[phone->867-5309]
gremlin> graph.tx().commit()
==>null

如果要持久化数据,则需要提交事务。

于 2016-01-07T16:01:27.177 回答