graph-theory - 在 Gremlin 中,我如何将所有边缘重定向到一个顶点,以连接到另一个顶点?
问题描述
我使用 Neptune 作为我的图形数据库。
假设我有一个主顶点“A”,我想将所有指向“A”的连接重定向到新的主顶点“B”。我知道进入主顶点的所有边都标记为“master_edge”。
目前我混合了 python 和 gremlin 代码,我想知道是否有办法通过纯粹在 gremlin 中执行此操作来提高性能?
vertices_on_deck = g.V(old_master).inE().outV().toList()
for i, current_vertex in enumerate(vertices_on_deck):
if i == 0:
t = g.addE('master_edge').from_(__.V(current_vertex.id)).to(__.V(new_master))
else:
t.addE('master_edge').from_(__.V(current_vertex.id)).to(__.V(new_master))
t.iterate()
g.V(old_master).drop().iterate()
解决方案
您可以将所有查询合并为一个:
g.V(old_master).as('oldMaster')
.inE().outV().addE('master_edge').to(__.V(new_master))
.select('oldMaster').drop().iterate()
推荐阅读
- laravel - 如何使用 Vue 在 Laravel 中上传文件 PDF
- pandas - 无法从 Groupby 保存到 CSV
- php - 如何在 Linux 命令行上通过 cURL 使用 PHP 将文件上传到不同的子目录?
- mysql - 如何将列中的多个值与其他列合并,该列也有多个用逗号分隔的值
- c++ - 使用 bazel 构建 TensorFlow C++ 调用模型时,.so 文件不起作用
- c# - Entity Framework Linq 中 where 子句内的空值检查
- mysql - 如何在月末显示数据
- mongodb - 如何在 MongoDB 中的深层嵌套数组元素中使用聚合
- javascript - 如何将 javascript 对象转换为 utf-8 Blob 以供下载?
- c - 即使文件不存在 fopen 返回非空指针