【问题标题】:How to update the Vertex/Edge ID in Gremlin?如何在 Gremlin 中更新顶点/边 ID?
【发布时间】:2021-09-08 19:23:24
【问题描述】:

如何更新顶点/边 ID?

g.V('jesica@rickandmorty.com').property(T.id, 'jerry@rickandmorty.com')

Gremlin.version() ==>3.4.10. 中出现以下错误

{"detailedMessage":"org.apache.tinkerpop.gremlin.structure.T$2 
    cannot be cast to java.lang.String","requestId":"ade01b34-8eec-46c4-9901-62dc1034f239",
       "code":"UnsupportedOperationException"}

【问题讨论】:

    标签: graph gremlin tinkerpop tinkerpop3 gremlin-server


    【解决方案1】:

    Vertex(或Edge)的idlabel 是不可变的。如果要更改 id,则必须删除 Vertex,然后将其重新添加。该错误消息在旧版本的 Gremlin 中有点误导。从 3.4.11 开始,它现在显示为:

    gremlin> g.V(1).property(T.id, 200).iterate();
    T.id is immutable on existing elements
    Type ':help' or ':h' for help.
    Display stack trace? [yN]y
    java.lang.IllegalStateException: T.id is immutable on existing elements
    

    【讨论】:

    • 谢谢@stephen mallette
    • 我正在使用gremlin> Gremlin.version() ==>3.5.0。但没关系。我得到了答案。
    • 这很奇怪 - 我在 3.4.11 和 3.5.0 上进行了测试并得到了相同的消息。我注意到您发布了一条指示 Gremlin 服务器使用情况的 JSON 样式错误消息 - 也许您的旧版本服务器上产生了该错误?
    • 是的,你是对的。我正在使用 AWS Neptune https://docs.aws.amazon.com/neptune/latest/userguide/engine-releases-1.0.4.2.R2.html。这是TinkerPop 3.4.10
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    相关资源
    最近更新 更多