我會盡我所能來解釋這個問題...執行後:刪除通過SQL
delete edge SOME_EDGE from (select from SourceNode where foo=bar) to (select from TargetNode where foo=bar)
當邊緣的最後一個引用被刪除,類型名稱仍然堅持SomeClass的用空列表,即:
"out_SOME_EDGE": []
與in_SOME_EDGE和相反的關係類似。
然後執行查詢時:
select from SourceNode where out_SOME_EDGE is not null
與空列表的引用這些類仍然返回。
顯然
select from SourceNode where out_SOME_EDGE=[]
沒有做任何事情。我怎樣才能找到和/或刪除這些過時/空的邊緣引用?
update SourceNode remove out_SOME_EDGE where out_SOME_EDGE is not null
update TargetNode remove in_SOME_EDGE where in_SOME_EDGE is not null
當然有效,但不是最好的方法,因爲TargetNode仍然可以有效的引用。
我試圖找到一個解決方案越深入,越是看起來像是一個bug,頂點被允許帶有空引用列表的邊緣,或者當最後一個目標引用被刪除時這些邊緣不會被刪除。