问题描述
arangoDB3-3.7.2_win64 arangodbJavaDriver = 6.7.5
假设集合有100多个文档,则以下Java AQL查询使用AqlQueryOptions()。fullCount(true)通过Java驱动程序返回stats.fullCount中的期望值:
FOR a IN SomeCollection FILTER a.field = @p1 SORT a.field ASC LIMIT 0,100 RETURN a
但是使用IN运算符进行的类似查询,stats.fullCount的值意外地为100:
FOR a IN SomeCollection FILTER a.field IN [@p1,@p2] SORT a.field ASC LIMIT 0,100 RETURN a
奇怪的是,当我降级到arangoDB3-3.6.3_win64时,两个查询均按预期工作,并在stats.fullCount中返回正确的值
可以恢复正确的功能吗?
解决方法
AQL中的相等运算符为==
,而=
是赋值运算符。因此,您的第一个查询应为:
FOR a IN SomeCollection FILTER a.field == @p1 SORT a.field ASC LIMIT 0,100 RETURN a