graph-databases - ArangoDB 字符串查询列表

标签 graph-databases arangodb aql nosql

我对 ArangoDB 比较陌生,在阅读完文档后,我尝试在新项目中实现它。

我有一个文档集合,每个文档中都有一个列表,其中包含许多术语。我正在使用 java 驱动程序,并且想要查询其列表与我拥有的列表中的任何元素相匹配的文档。

示例:

Document 1
{
    tokens["blue", "red", "green"]
}

Document 2
{
    tokens["black", "red", "yellow"]
}

myArrayList:
["purple", "red"]

由于我尝试查询的 ArrayList 包含单词“red”,因此我应该同时看到文档 1 和文档 2。理想情况下,我只会看到文档 ID 和匹配的颜色。

根据我对 AQL 的了解,采用半伪代码:

FOR document IN documents FILTER document.tokens CONTAINS myArrayList RETURN document.token.color && document._id

我通常会返回整个文档对象,然后访问我需要的任何内容。如果更容易的话我可以这样做。例如:

FOR document IN documents FILTER document.tokens CONTAINS myArrayList RETURN document

最佳答案

我建议使用 IN 运算符进行过滤,如下所示:

FOR document IN documents
  FILTER document.tokens IN @myArrayList
  RETURN document

只有当 tokens 属性是一个数组并且包含 @myArrayList 绑定(bind)参数中包含的任何值时,才会返回文档。

关于graph-databases - ArangoDB 字符串查询列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27851093/

相关文章:

neo4j:输入无效 '>':预期的空格

java - org.neo4j.ogm.exception.core.MappingException : More than one class has simple name

java - 遍历图形时无法删除节点 - neo4j java 嵌入式 api

ArangoDB - DAG 中后代属性的聚合和

node.js - ArangoDB:从运行 Arango 的同一服务器连接时出现登录问题

java - 在orientDB中,以下数据类型可以在orientDb的图形数据库中使用还是只能在orientDb的文档数据库中使用?

arangodb - 对具有许多索引的集合进行截断非常慢

arangodb - 在 ArangoDB AQL 中,如何更新每个遍历对象的字段(无论集合如何)?

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

ArangoDB 示例 : match anything with a key of x?