[英]AQL: How to filter where NOT IN edge
TASK : Get random friend suggestions from User
collection.任务:从
User
集合中随机获得好友推荐。
This is a User collection example:这是一个用户集合示例:
{
"firstname": "John",
"lastname": "Doe",
"username": "johndoe",
"email": "john@doe.com"
}
I also have an edge collection friendRequest
that stores friend requests like this:我还有一个边缘集合
friendRequest
,用于存储这样的好友请求:
_from: "User/John" -> _to: "User/Jane"
PROBLEM : I want to filter out my self and Users I already sent a request to.问题:我想过滤掉我自己和我已经向其发送请求的用户。
This is my initial query to get 3 users excluding myself这是我获得 3 个用户(不包括我自己)的初始查询
FOR user IN User
FILTER user._key != 'myself'
SORT RAND()
LIMIT 3
RETURN user
I want to be able to exclude people I've already sent a request to using something like FILTER NOT IN (<<SOME EDGE QUERY>>)
我希望能够排除我已经使用
FILTER NOT IN (<<SOME EDGE QUERY>>)
东西发送请求的人
NOTE : I also have a graph friendRequest_graph
that relates friendRequest
edge between User
collections注意:我还有一个图
friendRequest_graph
,它关联User
集合之间的friendRequest
边
I found out that I can do that with this query!我发现我可以用这个查询做到这一点!
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.