Graph 如何在Gremlin中链接命令?

Graph 如何在Gremlin中链接命令?,graph,neo4j,graph-databases,gremlin,Graph,Neo4j,Graph Databases,Gremlin,下面的命令起作用 t = new Table(); g.V.as('id').as('properties').table(t){it.id}{it.map} print t t = new Table(); g.V.as('id').as('properties').table(t){it.id}{it.map}; print t 下面的命令起作用 t = new Table(); g.V.as('id').as('properties').table(t){it.id}{it.map}

下面的命令起作用

t = new Table(); g.V.as('id').as('properties').table(t){it.id}{it.map}
print t
t = new Table();
g.V.as('id').as('properties').table(t){it.id}{it.map}; print t
下面的命令起作用

t = new Table(); g.V.as('id').as('properties').table(t){it.id}{it.map}
print t
t = new Table();
g.V.as('id').as('properties').table(t){it.id}{it.map}; print t
以下命令不起作用

t = new Table(); g.V.as('id').as('properties').table(t){it.id}{it.map}; print t

为什么?

快速答案是:您需要迭代您的管道

答案很长:在gremlinrepl中,如果您的最后一条语句是迭代器或iterable,那么迭代将自动发生。但是,如果最后一条语句不是(例如println t),则必须手动迭代迭代器/iterable

例如,要使上一个命令正常工作,请执行(注意>>-1):

有关更多信息,请阅读Gremlin文档疑难解答部分的第一个问题:

接下来,虽然您没有问这个问题,但当您连续执行两个as()步骤时,您将遇到排序问题。AsPipe是一个元管道,因为它将管道/步骤包装在它之前(Gremlin基于)。最好这样做:

g.V.as('id')._.as('properties').table(t){it.id}{it.map}
也就是说,在两个as()步骤之间插入标识步骤

希望有帮助, 马尔科