Получить количество затронутых строк / документов в AQL
Как узнать количество затронутых документов в AQL?
Учитывая запрос, как это:
FOR u IN users
FILTER u.active == true
UPDATE u WITH { numberOfLogins: 0 } IN users
Как я могу получить количество затронутых документов?
1 ответ
Сам запрос не вернет никаких документов, но может предоставить количество обновленных документов. В следующем примере показано, как это сделать в ArangoShell:
var query = "FOR u IN users FILTER u.active == true UPDATE u WITH { numberOfLogins: 0 } IN users";
var stmt = db._createStatement(query);
var result = stmt.execute();
var stats = result.getExtra().stats;
print(stats);
В моем случае это возвращало что-то вроде следующего:
{
"writesExecuted" : 50,
"writesIgnored" : 0,
"scannedFull" : 100,
"scannedIndex" : 0
}
writesExecuted
это, вероятно, фигура, которую вы ищете. Указывает, сколько обновлений документов было сделано. Как добраться до рисунка от драйверов, зависящих от языка, может отличаться (вероятно, зависит от языка и драйвера), но HTTP API ArangoDB, который используют все драйверы, предоставляет этот рисунок.