Heim  >  Artikel  >  Backend-Entwicklung  >  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

王林
王林nach vorne
2024-02-08 22:51:34460Durchsuche

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: ...

Scheitelpunkte werden von

hinzugefügt
t.addv("somenode").property("some_id", someid).iterate()

und

t.addv("someothernode").property("some_id", someid).iterate()

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()

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen