我有如下图所示的图形数据库结构。
如前所述,我有3 个文档集合 - Collection 1、Collection 2、Collection 3。我也有2 个Edge 集合 - Edge Collection 1有一个属性类型,它可以采用两个值T1或T2,Edge Collection 2。
我有一个满足集合 1 的特定过滤条件的文档列表 - 所有状态属性为已完成的文档。假设列表如下
l1 = [c1a, c1b, c1c]
现在,从列表中的每个项目作为开始,我需要找到沿着Edge Coll 1中的边缘遍历的集合c2,并且该边缘必须是 T1 类型,该项目使用 Edge Coll 1 中的边缘和类似的集合项目c3沿着边缘遍历在Edge Coll 2中。
获得两者后,我需要将其存储为三元组 - {coll 2, coll 1, coll 3} 对于列表中找到的每个 coll 1 项目
我知道我可以使用type == T1 和 _from == coll 1._id过滤Edge Coll 1中的项目。
同样,我可以重复Edge Coll 2并将这两个结果合并到我的后端 (GoLang) 中。
但是,如果我能够使用图形遍历和单个宏(类似于 SQL 宏),那会很慢并且会更好。那时我只需要对 DB 进行一次后端调用。