我们可以更新一个顶点,例如:
g.V(vertex_id).property("名称""马尔科&#34)
有没有办法替换顶点?
答案 0 :(得分:4)
所以你想用另一个顶点的属性替换一个顶点的所有属性(至少是我如何理解你的问题以及你的评论)。
要删除所有属性,只需删除它们:
g.V(vertex_id).properties().drop().iterate()
我们可以看到如何将所有属性从一个顶点复制到另一个顶点in this response by Daniel Kuppitz to a question on how to merge two vertices:
g.V(vertex_with_new_properties).
sideEffect(properties().group("p").by(key).by(value())).
cap("p").unfold().as("kv").
V(vertex_id).
property(select("kv").select(keys), select("kv").select(values)).
iterate()
当我们组合这两个遍历时,我们会得到一个遍历旧属性的遍历,并从另一个顶点复制新属性:
g.V(vertex_id).
sideEffect(properties().drop()).
V(vertex_with_new_properties).
sideEffect(properties().group("p").by(key).by(value())).
cap("p").unfold().as("kv").
V(vertex_id).
property(select("kv").select(keys), select("kv").select(values)).
iterate()
为现代图表采取行动:
// properties before for both vertices:
gremlin> g.V(1).valueMap(true)
==>{id=1, label=person, name=[marko], age=[29]}
gremlin> g.V(2).valueMap(true)
==>{id=2, label=person, name=[vadas], age=[27]}
// Replace all properties of v[1]:
gremlin> g.V(1).
sideEffect(properties().drop()).
V(2).
sideEffect(properties().group("p").by(key).by(value())).
cap("p").unfold().as("kv").
V(1).
property(select("kv").select(keys), select("kv").select(values)).
iterate()
// v[1] properties after:
gremlin> g.V(1).valueMap(true)
==>{id=1, label=person, name=[vadas], age=[27]}
您可以在GremlinBin中看到此示例:http://www.gremlinbin.com/bin/view/5a5ca9c7891c0