使用 gremlin-javascript 将完整图形序列化为 GraphSON 的最佳方法是什么?

What is the best way to serialise a full graph as GraphSON using gremlin-javascript?

我正在寻找可以创建完整 TinkerGraph 图的 GraphSON 序列化的单个查询。

// setup

const gremlin = require('gremlin')

const connection = new gremlin.driver.DriverRemoteConnection('ws://localhost:8182/gremlin')

const g = (new gremlin.structure.Graph()).traversal().withRemote(connection)

我能够将顶点、边和属性分别序列化为 GraphSON。以下语句仅创建所有顶点的 GraphSON 序列化。可以使用 E() 查询边,使用 V().properties().

查询属性
// placed within an async function

const writer = new gremlin.structure.io.GraphSONWriter()

const serialisedVertices = writer.write(await g.V().toList())

是否有一个 gremlin-javascript 方法可以一步将所有顶点、边和属性一起序列化(而不是像上面那样单独序列化)到一个 GraphSON 字符串中?

此外,如果可以将完整的图形序列化为单个 GraphSON 字符串,是否还有一个匹配的调用将从 GraphSON 字符串中重新组合图形实例?

启动 gremlin 3.4.x 您可以使用 io 步骤:

g.io("graph.json").read().iterate()
g.io("graph.json").write().iterate()

这些命令read/write graphson 格式的完整图形数据,它是一个json 文件。 tinkerpop documentation

中写了更多支持的格式

如果你是 运行 gremlin 3.3.x,你可以使用 following command:

graph.io(graphson()).writeGraph("graph.json");

请注意,该文件存储在 gremlin 服务器当前工作目录中。