Я использую tinkerpop gremling-go для доступа к gremlin-server/JanusGraph. При попытке создать ребро между двумя вершинами я получаю следующую ошибку
The provided traverser does not map to a value: ...
Вершины добавляются через
t.AddV("somenode").Property("some_id", someID).Iterate()
И
t.AddV("someothernode").Property("some_id", someID).Iterate()
Где t это *gremlingo.GraphTraversal. Вершины добавлены успешно.
Край добавляется через
t.AddE("someedge").
From(
__.V().
HasLabel("somenode").
Has("some_id", someID),
).
To(
__.V().
HasLabel("someothernode").
Has("some_id", someID),
).
Iterate()
Где снова t — это *gremlingo.GraphTraversal, а __ — псевдоним для gremlingo.T__. Edge не создается с выводом ошибки выше.
Использование gremlin-console, добавляющее ребро через g.addE("someedge").from(__.V().hasLabel("somenode").has("some_id","some_id_1")).to(__.V().hasLabel("someothernode").has("some_id","some_id_1")), где g — обход, работает просто отлично.
Обратите внимание, что я не учел обработку ошибок go.
Вы ждали завершения асинхронного запроса?
Channel := t.AddV("somenode").Property("some_id", someID).Iterate()
Err := <-channel
Да. Запросы и пример в порядке. Что-то не так, кроме гремлинго. Ваш ответ будет считаться правильным :)