Получить количество затронутых строк / документов в 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, который используют все драйверы, предоставляет этот рисунок.

Другие вопросы по тегам