在ArangoDB中求两个遍历的交集

hec6srdp  于 2023-09-28  发布在  Go
关注(0)|答案(2)|浏览(111)

我试图理解如何在ArangoDB中相交两个结果,我的场景看起来像这样。

我可以很容易地找到居住在西班牙,岛屿或欧洲的用户查询:

FOR x IN 1..3 INBOUND "places/Europe" situedIn,livesIn 
FILTER IS_SAME_COLLECTION('users',x)
return x

我想了解的是扩展搜索功能以包括职业的最佳方法:
范例:

  • 返回西班牙的所有警察(返回[A])
  • 返回欧洲的所有警察(返回[A])
  • 返回所有欧洲法律的(返回[A,B])

感谢任何帮助

xoefb8l8

xoefb8l81#

经过一番搜索,答案是交集

FOR a IN INTERSECTION (

(FOR x IN 1..3 INBOUND "places/Europe" situedIn
   FOR p IN INBOUND x livesIn
   return p),

(FOR x IN 1..3 INBOUND "profession/Medical" specializes
   FOR p IN INBOUND x worksWith
   return p)

) RETURN a
wmtdaxz3

wmtdaxz32#

_commonNeighbors函数可能就是您要找的。它返回两组顶点之间的交集。
https://docs.arangodb.com/3.11/graphs/general-graphs/functions/#_commonneighbors

相关问题