Heim > Backend-Entwicklung > Golang > Gremlingo: Traverser ordnet beim Hinzufügen einer Kante zwischen zwei Scheitelpunkten keine Werte zu

Gremlingo: Traverser ordnet beim Hinzufügen einer Kante zwischen zwei Scheitelpunkten keine Werte zu

王林
Freigeben: 2024-02-08 22:51:34
nach vorne
507 Leute haben es durchsucht

Gremlingo: Traverser ordnet beim Hinzufügen einer Kante zwischen zwei Scheitelpunkten keine Werte zu

PHP-Redakteur Zimo stellt Ihnen heute ein interessantes Phänomen namens Gremlingo vor. Wenn wir eine Kante zwischen zwei Eckpunkten eines Diagramms hinzufügen, ordnet der Traverser normalerweise nicht den entsprechenden Wert zu. Dieses Phänomen kann zu logischen Fehlern im Programm führen, daher müssen wir es speziell behandeln. In diesem Artikel werden wir die Ursachen und Lösungen des Gremlingo-Phänomens ausführlich besprechen, um den Lesern zu helfen, besser mit diesem Problem umzugehen.

Frageninhalt

Ich verwende Tinkerpop Gremling-Go, um auf Gremlin-Server/Janusgraph zuzugreifen. Beim Versuch, eine Kante zwischen zwei Eckpunkten zu erstellen, erhalte ich die folgende Fehlermeldung

the provided traverser does not map to a value: ...
Nach dem Login kopieren

Scheitelpunkte werden von

hinzugefügt
t.addv("somenode").property("some_id", someid).iterate()
Nach dem Login kopieren

und

t.addv("someothernode").property("some_id", someid).iterate()
Nach dem Login kopieren

Welches t*gremlingo.graphtraversal. Vertex erfolgreich hinzugefügt.

Die Kante wird durch

hinzugefügt
t.AddE("someedge").
        From(
            __.V().
                HasLabel("somenode").
                Has("some_id", someID),
        ).
        To(
            __.V().
                HasLabel("someothernode").
                Has("some_id", someID),
        ).
        Iterate()
Nach dem Login kopieren

wobei t*gremlingo.graphtraversal ,而 __gremlingo.t__ und __ ein Alias ​​für gremlingo.t__ ist. Die Kante wird nicht erstellt und die obige Fehlerausgabe erscheint.

Mit der Gremlin-Konsole über g.adde("someedge").from(__.v().haslabel("somenode").has("some_id","some_id_1")).to(__. v().haslabel("someothernode").has("some_id","some_id_1")) 其中 g funktioniert die Traversierung einwandfrei.

Bitte beachten Sie, dass ich die Go-Fehlerbehandlung weggelassen habe.

Problemumgehung

Warten Sie darauf, dass die asynchrone Anfrage abgeschlossen wird?

channel := t.AddV("somenode").Property("some_id", someID).Iterate()

err :=

Das obige ist der detaillierte Inhalt vonGremlingo: Traverser ordnet beim Hinzufügen einer Kante zwischen zwei Scheitelpunkten keine Werte zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage