Gremlin 获取所有与我无关的顶点

Gremlin get all vertices that are not connected to me

我有一个简单的图表,用户可以在其中按产品(高级、普通)分类。

g.addV('user').as('1')
.property(single, 'name', 'peter')
.addV('product').as('2').property(single, 'premium', false)
.addV('product').as('3').property(single, 'premium', true).property(single, 'order', 1)
.addV('product').as('3').property(single, 'premium', true).property(single, 'order', 2)
.addE('bought').from('1').to('2')

我遇到了只需要显示用户未购买的优质产品的查询。提前致谢。

有几种方法可以处理此查询。一种方法是首先找到 Peter 已经拥有的所有高级产品,然后找到不属于该集合的所有高级产品。

gremlin> g.V().has('name','peter').
......1>       out('bought').
......2>       has('premium',true).
......3>       fold().as('a').
......4>   V().hasLabel('product').
......5>       has('premium',true).where(without('a'))    

==>v[42310]
==>v[42313]           

编辑以在末尾添加排序

gremlin> g.V().has('name','peter').
......1>       out('bought').
......2>       has('premium',true).
......3>       fold().as('a').
......4>   V().hasLabel('product').
......5>       has('premium',true).where(without('a')).
......6>       order().
......7>         by('order')     

==>v[42310]
==>v[42313]