图数据库查询结果格式化:别名与投影的运用
1. 图遍历基础与结果差异
在图数据库操作中,我们常常需要从一个顶点出发,遍历其关联的边和相邻顶点。例如,我们可以使用 Gremlin 语言编写如下遍历语句,从所有订单顶点出发,通过 contains 边找到相邻的产品顶点:
g.V().hasLabel('order').out('contains')
将图遍历的最终结果与 SQL 查询的结果集进行对比,会发现 SQL 结果包含订单和产品的信息,而图遍历结果仅包含产品顶点的属性。这体现了关系型数据库查询和图遍历之间的根本差异。在关系型数据库中,连接操作的输出是所有连接表的组合;而在图数据库中,遍历的每一步输出是当前的顶点或边集合。
2. 构建包含订单和产品信息的结果
为了在图查询中同时返回订单和产品的信息,我们可以使用别名(alias)。在图数据库中,别名是对某个步骤输出的顶点或边的标记引用,可在后续步骤中使用。以订单处理图为例,获取订单和产品组合结果的步骤如下:
1. 找到图中所有的订单顶点。
2. 给这些订单顶点添加别名 O 。
3. 通过 contains 边遍历到产品顶点。
4. 给这些产品顶点添加别名 P 。
5. 返回标记为 O 的元素的所有属性以及标记为 P 的元素的所有属性。
下面是这个过程的 merma
超级会员免费看
订阅专栏 解锁全文
54

被折叠的 条评论
为什么被折叠?



