Мы можем обновить вершину, например: g.V (vertex_id) .property ("name", "Marko")
есть ли способ заменить вершину?
Я использую JanusGraph 0.2 с Cassandra 3.9. Как заменить вершину?
comment
Что именно вы имеете в виду с заменой вершины? Вы хотите изменить все свойства? Вы хотите изменить края?
- person Florian Hockmann   schedule 15.01.2018
comment
@FlorianHockmann Я имею в виду, что хочу изменить все свойства вершины, но все ребра останутся неизменными
- person jonyroy   schedule 15.01.2018
Ответы (1)
Итак, вы хотите заменить все свойства одной вершины свойствами другой вершины (по крайней мере, так я понимаю ваш вопрос вместе с вашим комментарием).
Чтобы удалить все свойства, вам просто нужно отбросить их:
g.V(vertex_id).properties().drop().iterate()
и мы можем увидеть, как скопировать все свойства из одной вершины в другую в этом ответе Дэниела Куппитца на вопрос о том, как объединить две вершины < / а>:
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]}
person
Florian Hockmann
schedule
15.01.2018