如何在 Gremlin 中使用 UUID 作为 id?

How to use a UUID as id in Gremlin?

我正在添加这样的 Verticle:

g.addV("foobar").property("id", 1).property(...etc...

如何使用 uuid 而不是整数 id 设置 属性?

一个"id"可以有多种含义。如果您只是想使用 UUID 作为唯一标识符来查找您的顶点,那么在与您选择的图形数据库的基础索引功能结合使用时,采用您所拥有的方法就可以了。换句话说,只要你在 "id" 上有一个索引,你就会很快找到你的顶点。在这种用法中,"id" 显然只是顶点的 属性,您可能会发现对于某些图数据库,"id" 实际上是一个保留词,不能使用作为 属性 键。最好选择不同的密钥名称。

如果不使用 "id" 作为 属性 键,您的意思是您希望设置实际的顶点标识符,由 T.id 引用,如:

g.addV(T.id, uuid)

那么您首先需要使用允许分配标识符的图形数据库实现。 TinkerGraph 就是这样一种实现。通过这种方式,您可以本地分配顶点的标识符,而不是让图形数据库为您创建它。

gremlin> graph = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> g.addV(id, UUID.randomUUID())
==>v[c2d673de-2425-4b42-bc1e-68ff20e3b0a8]
gremlin> g.V(UUID.fromString("c2d673de-2425-4b42-bc1e-68ff20e3b0a8"))
==>v[c2d673de-2425-4b42-bc1e-68ff20e3b0a8]