繁体   English   中英

列表中嵌入的ArangoDB查询属性

[英]ArangoDB Query Attribute Embedded in List

我有一个嵌入在列表中的文档,我需要查询与一系列字符串的值匹配的文档。

我的文件:

在此输入图像描述

如您所见,我有一份常规文件。 在该文档中是“类别”,每个文档的长度未知。 内部类别我有“信心”和“头衔”。 我需要查询以查找具有与ArrayList中的标题列表匹配的标题的文档。 我认为可行的查询是:

FOR document IN documents FILTER document.categories.title IN @categories RETURN article

@categories是一个带有标题列表的ArrayList。 如果ArrayList中的任何标题都在文档中,我希望它被返回。

此查询似乎返回null 我认为它没有达到将ArrayList与我文档中的“title”字段进行比较的水平。 我知道我可以使用[#]访问“类别”列表,但我不知道如何在“类别”中搜索“标题”。

查询

FOR document IN documents 
  FILTER document.categories.title IN @categories 
  RETURN article

如果document.categories是标量,它将起作用,但如果document.categories是一个数组,它将无法工作。 原因是IN运算符左侧的数组不会自动展开。

要查找文档,可以按如下方式重写查询:

FOR document IN documents 
  FILTER document.categories[*].title IN @categories 
  RETURN document

要么

FOR document IN documents 
  LET titles = (
    FOR category IN document.categories
      RETURN category.title
  )
  FILTER titles IN @categories 
  RETURN document

除此之外,除非有一个名为article的集合,否则article将是未知的。 它应该可以阅读documentdocument.articledocument.article

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM