1

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

现在我试图composed_of在选择所有带有标签的顶点时排除一个顶点及其带有边缘的孩子product

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

种子数据库:

//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'))

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

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

4

1 回答 1

1

我想这就是你要找的:

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

于 2019-11-03T14:48:11.743 回答