【发布时间】:2021-04-23 20:52:36
【问题描述】:
我有一个包含两个集合的 ArangoDB,一个用于文档,一个用于边缘,我想要一个高效的查询,它只返回共享相同 _to 和 _from 值的边缘。
例如,假设我的文档集合包含 A、B、C 和 D。 我们还假设我的 Edges 集合包含 X、Y 和 Z。
边 X 是 _from A 和 _to B。
边 Y 也是 _from A 和 _to B。
边 Z 是 _from C 和 _to D。
但是我不知道X和Y是基本相同的Edge,也不知道共享相似Edge的Document是A&B。我的查询是找出这些重复的Edge。
我目前的样子是这样的:
FOR ec1 IN edge_collection
FOR ec2 IN edge_collection
FILTER ec1._key != ec2._key AND ec1._to == ec2._to AND ec1._from == ec2._from
RETURN ec1
这似乎有效,尽管它也感觉非常低效。有没有更好的方法来做到这一点,或者这是 AQL 的最佳解决方案?
【问题讨论】: