Gremlin - 从多个实体查询属性

问题描述

我在两个 product 顶点之间建立了 is_duplicate_with 顶点和 product 边。所以数据模型就像:product(id=1) -> is_duplicate_with(created_by=abc) -> product(id=2)

如何编写 Gremlin 查询以从源产品中获取产品 id、从 is_duplicate_with 边缘获取 created_by 值以及从目标产品中获取产品 id在这个示例中,我想得到 id=1,created_by=abc,id=2。

解决方法

您可以为此使用 path 步骤。

g.V('1').outE('is_duplicate_with').inV().hasId('2').
  path().
    by(id).
    by('created_by')

或者如果您事先不知道 ID

g.V().outE('is_duplicate_with').inV().
  path().
    by(id).
    by('created_by')

如果你真的需要结果中的键/值对,你可以这样做:

g.V().outE('is_duplicate_with').inV().
  path().
    by(project('id').by(id)).
    by(valueMap('created_by'))