我有两个收藏品和一个边缘收藏。用户、文件和FILES_USERS。我试图获得所有的文件文档,其中的字段“什么”设置为“视频”,为特定的用户,但也嵌入另一个文档,也从收集文件,但“什么”设置为“预告片”和属于“视频”的结果。
我尝试了下面的代码,但它不能正常工作,我得到了很多重复的results...its混乱。我肯定做错了。
FOR f IN files
FILTER f.what=="video"
LET trailer = (
FOR f2 IN files
FILTER f2.parent_key==f._key
AND f2.what=="trailer"
RETURN f2
)
FOR x IN files_users
FILTER x._from=="users/18418062"
AND x.owner==true
RETURN DISTINCT {f,trailer}发布于 2019-04-24 10:28:21
使用图形查询语法可能有更好的方法来实现这一点,但请尝试以下方法。根据您的数据模型调整独特的功能。
LET user_files = UNIQUE(FOR u IN FILES_USERS
FILTER u._from == "users/18418062" AND u.owner
RETURN u._to)
FOR uf IN user_files
FOR f IN files
FILTER f._key == uf AND f.what == "video"
LET trailers = UNIQUE(FOR t IN files
FILTER t.parent_key == f._key AND t.what == "trailer"
RETURN t)
RETURN {"video": f, "trailers": trailers}发布于 2019-04-24 20:48:06
那么,检查一下是否有TMan建议的重复数据,但是也要检查您的查询语法。在主查询中,您的f子查询和x之间似乎没有链接。如果集合files_users中有多条记录供用户使用/18418062,这将导致查询可能返回很多dups
尝试在主查询中添加一个联接。类似于:
FOR x IN files_users
FILTER x._from=="users/18418062"
AND x.owner==true
AND x._to == f._id
RETURN DISTINCT {f,trailer}在一个相关的注意事项上,如果您在对拖车执行子查询时遇到性能问题,您可以尝试只执行一个join和阵列展开,看看这是否适用于您的情况。
https://stackoverflow.com/questions/55774476
复制相似问题