有一个图形,实际上它是一个树:顶点是节点,边标记为“子节点”,并从子节点指向父节点 .
我需要使用gremlin查询来获取递归结构,如下所示:
node_info = [properties: node.map(),
subnodes: [...list of node_info items...]]
Groovy函数更准确地描述了我需要得到的东西:
def get_node_hierarchy(node_id) {
def get_hierarchy(node) {
def hierarchy_list = []
for (subnode in node.in('subnode')) {
sub_hierarchy = get_hierarchy(subnode)
hierarchy_list.add(sub_hierarchy)
}
[properties: node.map(), subnodes: hierarchy_list]
}
node = g.V('node_id', node_id).next()
get_hierarchy(node)
}
result = get_node_hierarchy(1)
是否可以使用单个Gremlin查询来实现它?