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.
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ügtt.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ügtt.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.
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!