为什么SELECT然后执行hasId()之类的步骤会更改所选内容?

时间:2018-10-25 19:55:41

标签: gremlin

我在代码中没有正确使用select()吗?当我出于某种原因重新选择(“ pair”)时,它最初包含的内容在执行某些步骤后已更新。使用as()标记的内容不应该保留包含的内容吗?

g.V()
.hasLabel("Project")
.hasId("parentId","childId").as("pair")
.select("pair")
.hasId("parentId").as("parent")
.select("pair") // no longer what it was originally set to

1 个答案:

答案 0 :(得分:0)

我认为这是预期的。您(大概)会找到两个带有hasId("parentId","childId")的顶点,因此第一个select("pair")当然会显示每个顶点。但是,然后再次过滤hasId("parentId")并杀死包含id为“ childId”的顶点的遍历器。它被过滤掉,因此永远不会触发第二个/最后一个select("pair")步骤,因此只会返回ID为“ parentId”的一个顶点。