Aggregate-Step 在 Graph-Step 之后相乘

Aggregate-Step multiplies following Graph-Step

我在执行以下命令时在 gremlin shell 中遇到问题:

g.V().hasLabel('FirstLabel').aggregate('nodes')
.V().hasLabel('SecondLabel').aggregate('nodes')
.cap('nodes')

我的目标是聚合所有匹配这两个标签的节点。我知道我可以通过不同的过滤步骤实现这一点,但我想访问具有聚合的节点。 给定的示例将每个对象的 .V() 步骤之后的所有内容与 firstLabel 相乘。

如果我有 3 个带有 FirstLabel 的节点和 3 个带有 Secondlabel 的节点,结果集给我前 3 个节点和后 3 个节点,每 3 次(所以总共 12 个节点)。

不过,我可以在第一次聚合后使用 .limit(1) 来缓解这种情况,但这似乎不是一个好的解决方案。

有没有办法不限制只执行一次Graph-Step?

我不清楚你的用例,但看起来应该可以正常工作:

g.V().hasLabel('FirstLabel', 'SecondLabel').aggregate('nodes').cap('nodes')

将当前遍历器的数量减少到 1。这几乎可以使用任何减少障碍的步骤来完成。例如试试这个:

g.V().hasLabel('FirstLabel').aggregate('nodes').cap('nodes').
  V().hasLabel('SecondLabel').aggregate('nodes').cap('nodes')