【发布时间】:2015-01-10 03:29:03
【问题描述】:
我正在使用 ArangoDB Java 驱动程序并尝试查询包含多个字符串之一的文档,这些字符串存储在列表中的 arangoDB 文档中。我在查询中使用 ArrayList 和字符串列表。
Query:
FOR document IN documents FILTER ( @now - document.dateAdded < 2592000000 ) &&
(document.categories IN @categories || document.tags IN @tags
|| document.locations IN @locations ) RETURN document
Map<String, Object> bindVars = new MapBuilder().put("now", now).put("categories", categories).put("@tags", tags).put("@locations", locations).get();
“现在”包含一个长字符。所有其他人都是ArrayList<String>. 这是抛出一个错误,解释“bind parameter '@tags' has an invalid value or type”。由于这个 ArrayList 与其他 ArrayList 没有什么不同,我唯一的理论是我输入的逻辑不正确。如何一次查询:
FunctionCondition1 AND (condition2 OR condition3 OR condition4)
【问题讨论】:
-
你可以试试下面的方法:bindVars = new MapBuilder().put("now", now).put("categories", categories).put("tags", tags).put( "位置", 位置).get();
-
绑定变量在查询中使用“@”标记,但没有第一个“@”。集合参数用两个 at 指定为“@@myvariablecollection”。在这种情况下,绑定变量是“@myvariablecollection”,并且必须是集合类型。
-
感谢您的解决方案,您能否发布一个快速的答案,以便我给予您适当的信任?
-
@Jgolden1 你也可以检查这个答案是否被接受? ;-)
标签: arangodb