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')
我在执行以下命令时在 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')