考虑以下数据:
g.addV('RootTopic').property('name', 'A').as('A')
.addV('RootTopic').property('name', 'M').as('M')
.addV('Topic').property('name', 'A1').as('A1')
.addV('Topic').property('name', 'A2').as('A2')
.addV('Topic').property('name', 'B1').as('B1')
.addV('Topic').property('name', 'B2').as('B2')
.addV('Topic').property('name', 'N1').as('N1')
.addV('Topic').property('name', 'N2').as('N2')
.addV('Topic').property('name', 'O1').as('O1')
.addE('refines').from('A').to('A1')
.addE('refines').from('A').to('A2')
.addE('refines').from('A1').to('B1')
.addE('refines').from('A1').to('B2')
.addE('refines').from('M').to('N1')
.addE('refines').from('M').to('N2')
.addE('refines').from('N2').to('O1')
.addE('refines').from('N2').to('O2')
我想要的是人们通过使用获得的东西tree()
-step:
g.V().hasLabel('RootTopic').repeat(out()).times(2).emit().tree()
然而,这会拉出完整的顶点。在这种情况下我真正需要的是顶点的属性,例如名称,这样我们就得到一棵包含例如只是顶点的名称属性。
我知道如果我写.tree().by('name')
我似乎得到了一棵以名称作为键的树,但我正在尝试找到一种方法,允许我选择例如顶点的多个属性,或者例如只是具有某些特定元属性的某个属性。
这可能吗?
The by()
调制器不仅仅可以采用属性键值作为参数。您还可以传入匿名遍历,从而允许:
g.V().hasLabel('RootTopic').
repeat(out()).times(2).
emit().
tree()
by(values('name','k1','k2').fold())
或者你可能会使用project()
如果你有更复杂的输出:
g.V().hasLabel('RootTopic').
repeat(out()).times(2).
emit().
tree()
by(project('name','k1','degree').
by('name').
by('k1').
by(both().count())
这里要讲的要点是,通过匿名遍历,您几乎可以开发任何您想要的输出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)