Как получить количество затронутых документов в AQL?
Учитывая такой запрос:
FOR u IN users
FILTER u.active == true
UPDATE u WITH { numberOfLogins: 0 } IN users
Как я могу получить количество затронутых документов?
Как получить количество затронутых документов в AQL?
Учитывая такой запрос:
FOR u IN users
FILTER u.active == true
UPDATE u WITH { numberOfLogins: 0 } IN users
Как я могу получить количество затронутых документов?
Сам запрос не возвращает никаких документов, но может указать количество обновленных документов. В следующем примере показано, как это сделать в 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, который используют все драйверы, обеспечивает этот рисунок.
UPDATE
всегда будет в конце запроса, поэтому количество обновленных строк нельзя передать какой-либо другой операции в том же запросе.
- person stj; 13.01.2015
UPDATE
. Не уверен, что это поможет, но это вариант.
- person stj; 13.01.2015