Gremlin GraphTraversalSource 产生一个随机的 GraphTraversal

Gremlin GraphTraversalSource spawn a random GraphTraversal

我正在尝试仅使用一个 GraphTraversal 将所有顶点添加到远程图形数据库。
但是,我 无法使添加查询像这样在一起:

GraphTraversalSource source = ...;
source.addV().addV().....next();

因为我需要做处理得到每个顶点, 我认为结构是这样的:

GraphTraversalSource source = ...;
GraphTraversal g = source.??; <create a graph traversal>

while (condition)
{
    ...
    g.addV();
}
...

g.next();

想法是 GraphTraversalSource 产生一个 graphTraversal 并且它可以被传递, 最后我使用终止步骤将命令发送到远程图形数据库。

但是,我不确定如何让 GraphTraversalSource 在这种情况下创建合适的 GraphTraversal,source.V() 是否合适?我认为这可能会创建不必要的步骤来查找所有顶点。

您可以inject()一个一次性对象来启动流:

GraphTraversalSource g = ...;
GraphTraversal t = g.inject(0);

while (condition)
{
    ...
    t.addV();
}
...

t.iterate();

有些人不喜欢这样,我想在这种情况下,我猜你必须进行某种 null 检查:

GraphTraversalSource g = ...;
GraphTraversal t = null;

while (condition)
{
    ...
    if (null == t)
    {
        t = g.addV();
    } 
    else 
    {
         t.addV();
    }

    ...
}
...

t.iterate();

就我个人而言,如果你用 Gremlin 的术语来思考,我认为 g.inject(0) 很有意义,但我可以看到其他人可能更喜欢更明确地创建 t