获取AQL中受影响的行/文档的数量

时间:2015-01-13 09:26:07

标签: arangodb aql

如何获取AQL中受影响的文档数量?

给出这样的查询:

FOR u IN users
  FILTER u.active == true
  UPDATE u WITH { numberOfLogins: 0 } IN users

如何获取受影响的文档数量?

1 个答案:

答案 0 :(得分:2)

查询本身不会返回任何文档,但可以提供更新的文档数。以下示例显示了如何在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可能就是你追求的数字。它表示完成了多少文档更新。如何从特定于语言的驱动程序获取数字可能会有所不同(可能取决于语言和驱动程序),但所有驱动程序使用的ArangoDB的HTTP API都提供了这个数字。