0

我需要获取由属性上的特定谓词过滤的顶点,以及它们之间存在的所有边(具有特定标签,也许还有一些关于边属性的谓词)。

这是针对 Cosmos Azure Db 图,解决方案应该是单个 Gremlin 查询。

到目前为止,我正在考虑以下内容:

g.V().has('property1', value1).has('property2', value2).select('vertices')
.outE().as('edges').inV().has('property1', value1).has('property2', value2)
.select('vertices','edges')

有没有更好的方法来实现这一目标?

4

1 回答 1

0

鉴于描述和您的评论,此遍历应该适合您:

g.V().has('property1', value1).has('property2', value2).
  aggregate('v').
  outE().                   /* add edge filters here */
  inV().where(within('v')).
  path().
  union(union(limit(local, 1),
              tail (local, 1)).dedup().aggregate('vertices'),
        range(local, 1, 2).aggregate('edges')).
  cap('vertices','edges').next()
于 2019-08-20T23:23:07.933 回答