使用Gremlin API cosmosDB返回简单路径中顶点的特定属性

时间:2018-10-30 14:11:12

标签: path azure-cosmosdb gremlin

我要基于属性选择一个顶点,然后要查找从起始顶点到路径“上游”中具有链接的所有顶点。我可以做的很好,但是我只想返回顶点ID和其他几个属性。

g.V('1').repeat(out('UPSTREAM')).until(outE('UPSTREAM').count().is(0)).simplepath()

上面的方法工作正常,但是如何仅返回所需的属性?

我尝试过:

g.V('1').repeat(out('UPSTREAM')).until(outE('UPSTREAM').count().is(0)).simplepath().by('id').by('name')

但得到异常

Error

Failed to execute query: g.V('1').repeat(out('UPSTREAM')).until(outE('UPSTREAM').count().is(0)).simplepath().by('id').by('name'): 
Error with status code: 499. Message: 
ActivityId : 5a41d663-b1f1-41a4-b11e-abd258f17b01 ExceptionType : 
GraphNotYetImplementedException ExceptionMessage :
Not Yet Implemented: ModulateBy(traversal) Source : 
Microsoft.Azure.Graphs GremlinRequestId : 5a41d663-b1f1-41a4-b11e-abd258f17b01 Context : graphcompute Scope : 
graphcmd-invoke GraphInterOpStatusCode : InvalidRequestArguments HResult : 0x80131500

1 个答案:

答案 0 :(得分:2)

simplePath()是一个过滤步骤,它仅过滤顶点,因此只需使用valueMap()project()等:

g.V('1').
  repeat(out('UPSTREAM')).
    until(outE('UPSTREAM').count().is(0)).
  simplepath().
  valueMap('id','name')