首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多到多AQL查询

多到多AQL查询
EN

Stack Overflow用户
提问于 2019-04-20 14:32:46
回答 2查看 72关注 0票数 1

我有两个收藏品和一个边缘收藏。用户、文件和FILES_USERS。我试图获得所有的文件文档,其中的字段“什么”设置为“视频”,为特定的用户,但也嵌入另一个文档,也从收集文件,但“什么”设置为“预告片”和属于“视频”的结果。

我尝试了下面的代码,但它不能正常工作,我得到了很多重复的results...its混乱。我肯定做错了。

代码语言:javascript
运行
复制
 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}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-24 10:28:21

使用图形查询语法可能有更好的方法来实现这一点,但请尝试以下方法。根据您的数据模型调整独特的功能。

代码语言:javascript
运行
复制
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}
票数 1
EN

Stack Overflow用户

发布于 2019-04-24 20:48:06

那么,检查一下是否有TMan建议的重复数据,但是也要检查您的查询语法。在主查询中,您的f子查询和x之间似乎没有链接。如果集合files_users中有多条记录供用户使用/18418062,这将导致查询可能返回很多dups

尝试在主查询中添加一个联接。类似于:

代码语言:javascript
运行
复制
  FOR x IN files_users
    FILTER x._from=="users/18418062"
    AND x.owner==true
       AND x._to == f._id
    RETURN DISTINCT {f,trailer}

在一个相关的注意事项上,如果您在对拖车执行子查询时遇到性能问题,您可以尝试只执行一个join和阵列展开,看看这是否适用于您的情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55774476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档