我有一个不那么复杂的数据集,但我正在努力进行查询。
假设我有一个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]]