AQL:如何过滤不在边缘的地方

AQL: How to filter where NOT IN edge

任务:从Usercollection获取随机好友建议。

这是一个用户 collection 示例:

{
  "firstname": "John",
  "lastname": "Doe",
  "username": "johndoe",
  "email": "john@doe.com"
}

我也有一个 edge collection friendRequest 可以像这样存储好友请求:

_from: "User/John" -> _to: "User/Jane"

问题:我想过滤掉我自己和我已经向其发送请求的用户。

这是我最初的查询,除了我自己之外还有 3 个用户

FOR user IN User
FILTER user._key != 'myself'
SORT RAND()
LIMIT 3
RETURN user

我希望能够使用 FILTER NOT IN (<<SOME EDGE QUERY>>)

之类的方式排除我已经发送请求的人

注意:我还有一个图friendRequest_graph,它涉及User collections[=19 之间的friendRequest 边=]

我发现我可以通过这个查询做到这一点!

FOR user IN User
  FILTER user._key != 'myself' && 
  user._key NOT IN (FOR fr IN friendRequest FILTER fr._from == 'User/myself' RETURN LTRIM(fr._to, 'User/'))
  SORT RAND()
  LIMIT 3
  RETURN user