gpt4 book ai didi

gremlin - 使用 Gremlin 递归查询更简单的树状结构

转载 作者:行者123 更新时间:2023-12-02 17:11:28 36 4
gpt4 key购买 nike

考虑以下数据:

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') 我似乎得到了一棵以名称为键的树,但我试图找到一种方法允许我选择例如顶点的多个属性,或者例如只是具有某些特定元属性的特定属性。

这可能吗?

最佳答案

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())

这里要指出的要点是,通过匿名遍历,您几乎可以开发任何您想要的输出。

关于gremlin - 使用 Gremlin 递归查询更简单的树状结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49038920/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com