Обновление свойств с помощью Gremlin - PullRequest
1 голос
/ 07 мая 2020

Я использую python и AWS Нептун.

Я использую шаблон «upsert» по идентификатору:

g.V().has(node_type,'id',node.id).fold()
.coalesce(__.unfold(),__.addV('node_type').property('id',node.id)).
property('property','first').next()

Действительно, добавляется вершина ( Или выбрано из графика) с добавленным свойством. Теперь я хочу добавить еще два свойства, которые я не могу добавить:

  1. Я хочу добавить свойство «max». Если у вершины есть свойство, я хочу взять его максимальное значение и значение «10» (например). Пытался добавить в свой запрос следующий оператор, но он не работает:

    property('time_max', __.max(__.values('max'), 10))

    Но я получаю исключение «Не удалось найти метод: DefaultGraphTraversal.max»

  2. Другое свойство, которое увеличивает свойство "count" таким же образом. У меня такое же исключение по методу «мешок».

Как можно добавить эти свойства? Единственный способ - получить вершину, а затем зафиксировать ее? Я хочу, чтобы это было максимально эффективно.

Спасибо!

1 Ответ

1 голос
/ 07 мая 2020

Шаг max () используется для нахождения максимального значения в потоке или коллекции, как в этом простом примере:

gremlin> g.inject(1,2,3).max()
==>3  

Вместо этого вы можете сделать что-то вроде этого

union(values('max'),constant(10)).max()
...