Azure cosmosdb 当在where子句中时,我们可以在两者之间发射顶点吗

Azure cosmosdb 当在where子句中时,我们可以在两者之间发射顶点吗,azure-cosmosdb,gremlin,tinkerpop3,Azure Cosmosdb,Gremlin,Tinkerpop3,我希望以单向方式进行遍历,但返回并获取路径中过滤的顶点时遇到困难。请帮忙 g.V().hasLabel('states').as('s'). in().hasLabel('url').as('u'). select('s'). where(and(inE('exporting').has('forward','states'), inE('release').has('forward','states'))). select('u') 由于您的所有筛选器

我希望以单向方式进行遍历,但返回并获取路径中过滤的顶点时遇到困难。请帮忙

g.V().hasLabel('states').as('s').
  in().hasLabel('url').as('u').
  select('s').
  where(and(inE('exporting').has('forward','states'),
            inE('release').has('forward','states'))).
  select('u')

由于您的所有筛选器几乎都依赖于
s
,因此使用
match()
步骤是有意义的

g.V().hasLabel('states').
  match(__.as('s').in().hasLabel('url').as('u'),
        __.as('s').inE('exporting').has('forward','states'),
        __.as('s').inE('release').has('forward','states')).
  select('u')
这至少让它更容易阅读。但是,有一种更简单的方法来编写查询,它不需要任何标签:

g.V().hasLabel('states').
  and(inE('exporting').has('forward','states'),
      inE('release').has('forward','states')).
  in().hasLabel('url')

到底是什么问题?遍历在我看来很好,尽管它包含一些不必要的步骤。谢谢格式化。运行此查询时,它将返回“u”变量顶点,但我需要的是过滤顶点。这就是运行where子句时,它应该返回并仅获取那些使用where on path而不是all筛选的“u”顶点。但让我简化你的查询,也许这会有帮助。谢谢,但这不是给我过滤的url。它实际上是获取所有与状态标签绑定的url顶点。我希望检索返回过滤路径的url顶点,这就是它所做的。也许可以提供一个小样本图,并显示预期结果,以解释您需要什么。