首页 > 解决方案 > Gremlin:按查询从组中返回 valueMap/projected 属性

问题描述

假设我有两种类型的顶点,父母和孩子。我希望能够查询所有父顶点,并让所有子节点按关联的父节点以及每个子节点的属性进行分组。假设父母有多个孩子,孩子只能有 1 个父母。Parent 将始终具有父标签,但子标签可以具有各种不同的标签。

所以现在如果我这样做

g.V().hasLabel('parent').group().by(__.inE().outV()).toList()

我回来了:

[{v[Child_A]: [v[Parent_A]], v[Child_B]: [v[Parent_B]]}]

我想要的是相反的层次结构以及孩子的价值图/投影值,例如:

[Parent_A: Child_A1: {properties}, Child_A2: {properties}], [Parent_B: Child_B1: {properties]

如果这很重要,请使用带有 Neptune 的 python gremlin。

标签: graph-databasesgremlinamazon-neptune

解决方案


如果我了解您想要的输出,我认为这就是您要寻找的:

g.V().hasLabel('parent').group()
   .by(__.values('name'))
   .by(__.in_().group().by(__.values('name')).by(__.valueMap(true)))


推荐阅读