Как использовать tryNext () в Gremlin с Node.js? - PullRequest
0 голосов
/ 27 мая 2019

Следующий пример не работает для меня в Node.js, использующем пакет gremlin 3.4.1 npm:

g.V().has('person','name','bill').tryNext().orElseGet{g.addV('person').property('name','bill').next()}

Я получаю ошибку TypeError, сообщающую, что tryNext() не является функцией.Что я делаю не так?

import {driver, structure} from 'gremlin';
import DriverRemoteConnection = driver.DriverRemoteConnection;
import Graph = structure.Graph;

const g = new Graph().traversal().withRemote(new DriverRemoteConnection('ws://localhost:8182/gremlin'));

console.log(g.V().toList());    <= working

Теперь использование строки сверху в этом коде не будет работать, но оно работает с помощью консоли Gremlin.

Ответы [ 2 ]

2 голосов
/ 27 мая 2019

Попытка вызвать функцию, которая не существует, которая выглядит так, как указано в документах Gremlin, с помощью:

tryNext() вернет Optional и, таким образом, будетсоставная часть hasNext() / next() (поддерживается только для языков JVM).

http://tinkerpop.apache.org/docs/current/reference/#terminal-steps

Предупреждение: Никогда не использовал TinkerPop, никогда не использовал Gremlin.Но я знаю, как пользоваться Интернетом.Может быть, это не так, но документы, кажется, довольно ясно.

0 голосов
/ 28 мая 2019

Если tryNext() не поддерживается, как упоминал Дэйв.

Вы можете переписать свой запрос, чтобы сделать то же самое с другими шагами gremlin:

g.V().has('person','name','bill').fold().coalesce(unfold(),g.addV('person').property('name','bill')).next()

...