Этот метод действительно отсутствует в Gremlin.Net прямо сейчас. Хотя это явно не указано в документации, в документации перечислены все шаги терминала, реализованные Gremlin.Net :
- ITraversal.Next ()
- ITraversal.NextTraverser ()
- ITraversal.ToList ()
- ITraversal.ToSet ()
- ITraversal.Iterate ()
hasNext
также такой конечный шаг, но, как вы можете видеть, он отсутствует в этом списке.
Единственный обходной путь, который я могу придумать для подобных ситуаций, состоит в том, чтобы использовать шаг count
и затем проверить в своем приложении, является ли возвращенное число больше нуля:
var count = g.V("1").Out("knows").HasId("2").Count().Next();
var exists = count > 0;
В некоторых случаях также может иметь смысл ограничить количество вершин, идущих на шаг Count
, так как вас не интересует точное число, но вы хотите узнать только, существует ли хотя бы одна вершина:
g.V("1").Out("knows").HasId("2").Limit<Vertex>(1).Count().Next();
Это также предлагаемый обходной путь в билете для этой функции: TINKERPOP-1921 .