【问题标题】:Exclude a vertex and its children in a traversal [Gremlin API]在遍历中排除顶点及其子节点 [Gremlin API]
【发布时间】:2019-11-03 13:28:59
【问题描述】:

在我的图中,product 顶点可以具有来自另一个 product 顶点的 composed_of 边。

现在我试图在选择所有顶点product时尝试使用composed_of 987654324 @ Edge排除顶点及其子节点。

最初我有要排除的顶点的 id,但在一个查询中选择所有 product 顶点时,我不知道如何排除它及其子节点。

种子数据库:

//add product vertex
g.addV('product').property('id', 'product1').property('pk', 'product1');
g.addV('product').property('id', 'product2').property('pk', 'product2');
g.addV('product').property('id', 'product3').property('pk', 'product3');
g.addV('product').property('id', 'product4').property('pk', 'product4');
g.addV('product').property('id', 'product5').property('pk', 'product5');


//add composed_of edge
g.V('product1').addE('composed_of').to(g.V('product2'))
g.V('product1').addE('composed_of').to(g.V('product3'))

现在我希望能够通过排除 product1 及其具有 composed_of 边缘的子项来选择 product4product5

注意:如果此命令不适用于您的 gremlin 控制台,我很抱歉,因为我第一次开始使用 cosmosDB 学习 gremlin。

【问题讨论】:

    标签: graph-databases gremlin azure-cosmosdb-gremlinapi


    【解决方案1】:

    我想这就是你要找的:

    g.V().hasLabel('product').where(
        __.not(coalesce(
             hasId('product1'), 
             __.in('composed_of').hasId('product1')
        ))
    )
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多