Gremlin Javascript свернуть, объединить и развернуть - PullRequest
0 голосов
/ 25 октября 2018

Используя gremlin-javascript, я хотел бы выполнить транзакцию "добавить, если не существует", такую ​​как:

g.V()
  .hasLabel('account').has('uid', '1')
  .fold()
  .coalesce(
    g.V().unfold(),
    g.V().addV('account').property('uid', '1')
  )

Как бы я сформулировал запрос такого типа?

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Чтобы быть более точным:

const __ = gremlin.process.statics;

g.V()
  .hasLabel('account').has('uid', '1')
  .fold()
  .coalesce(
    __.unfold(),
    __.addV('account').property('uid', '1')
  )
0 голосов
/ 25 октября 2018

Я предполагаю, что вы видели этот шаблон в другом месте, возможно, продемонстрированном в консоли Gremlin.Пока это Gremlin Groovy, Gremlin - это Gremlin - это Gremlin, независимо от вашего языка программирования.Помимо нескольких незначительных идиоматических различий, большинство вариантов Gremlin идентичны друг другу.Для Javascript и этого конкретного фрагмента Gremlin, который вы спрашиваете о Gremlin, ничем не отличается от Groovy:

g.V().
  hasLabel('account').has('uid', '1').
  fold().
  coalesce(unfold(),
           addV('account').property('uid', '1'))

Обратите внимание, что unfold() или addV() вызываются анонимным способом ,Их нужно просто импортировать из __, как обсуждено здесь .

...