Я использую JanusGraph 0.2 с Cassandra 3.9. Как заменить вершину?

Мы можем обновить вершину, например: g.V (vertex_id) .property ("name", "Marko")
есть ли способ заменить вершину?


person jonyroy    schedule 15.01.2018    source источник
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