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顶点,这就是它所做的。也许可以提供一个小样本图,并显示预期结果,以解释您需要什么。