graph-databases - 嵌入在列表中的 ArangoDB 查询属性

标签 graph-databases arangodb aql nosql

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

我的文档:

enter image description here

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

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

@categories 是一个包含标题列表的 ArrayList。如果 ArrayList 中的任何标题在文档中,我希望将其返回。

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

最佳答案

查询

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.article

关于graph-databases - 嵌入在列表中的 ArangoDB 查询属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882450/

相关文章:

graph-databases - 用于匹配边缘属性的 ArangoDB AQL FILTER 图

javascript - 为什么 org/arangodb/request 是同步的?

arangodb - 在 Mac 操作系统上升级 Arangodb

arangodb - 搜索不带变音符号的字符串值

arangodb - 在 AQL 中组合文档列表?

graph-databases - ArangoDB:(1 个具有多个边定义的图)与(每个图 1 个边定义)

java - Neo4j Java 遍历 - 查找传出/传入节点

arangodb - 如何在 ArangoDB 中使用自连接访问集合中多个文档的数据

neo4j - 如何将关系数据库建模为 Neo4j 图形数据库?

javascript - 从 MySQL 导入 ArangoDB 始终不完整(自己的 Node.js 脚本)