使用AQL IN运算符时stats.FullCount的值错误

问题描述

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