根据某个条件获取顶点及其边



我有一个不那么复杂的数据集,但我正在努力进行查询。

假设我有一个id为1的主顶点。这个顶点的边分别到顶点10,11和12。每个顶点的边都指向100和101。

如果我这样做:

g.V(1).inE('type').project('e', 'v').by().by(outV().valueMap())

我得到了一个顶点的列表:10,11和12,但我没有得到100和101的列表。我想我可以做一些合并之类的事情,但是我想不出正确的方法。

同样,下面我想根据一个100和101属性过滤10,11和12顶点。也就是说,如果100有x = 1这样的属性,101有x = 2这样的属性,我只想得到(在10-12集合中)指向x = 1的顶点的顶点。

假设你不想访问所有的路径和所有相关的顶点,你可以这样做:

gremlin> g.addV().property(id,'1').as('1').
......1>   addV().property(id,'10').as('10').
......2>   addV().property(id,'11').as('11').
......3>   addV().property(id,'12').as('12').
......4>   addV().property(id,'100').property('p',1).as('100').
......5>   addV().property(id,'101').property('p',2).as('101').
......6>   addE('link').from('1').to('10').
......7>   addE('link').from('1').to('11').
......8>   addE('link').from('1').to('12').
......9>   addE('link').from('10').to('100').
.....10>   addE('link').from('11').to('101')
==>e[61381][11-link->101]
gremlin> g.V('1').out().store('a').out().has('p',2).store('a').cap('a').dedup()
==>[v[10],v[11],v[12],v[101]]  

最新更新