#java #arangodb #aql
#java #arangodb #aql
Вопрос:
ArangoDB3-3.7.2_win64 arangodbJavaDriver=6.7.5
Предполагая, что коллекция содержит более 100 документов, следующий запрос AQL через драйвер Java с использованием AqlQueryOptions().fullCount(true) возвращает ожидаемые значения в 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
Можно ли восстановить правильную функциональность?
Ответ №1:
Оператор равенства в AQL есть ==
, а =
оператор присваивания. Итак, ваш первый запрос должен быть таким:
FOR a IN SomeCollection FILTER a.field == @p1 SORT a.field ASC LIMIT 0,100 RETURN a