4

如何使用 AQL 查询在 ArangoDB 中接收最后插入的 _key?我将项目放在集合中,以下元素必须包含 _key 创建的元素。我如何获得这个_key?

4

3 回答 3

9

关于这个问题的更新:从 ArangoDB 2.4 开始,即使使用 AQL 查询也可以检索刚刚插入的文档(或多个文档)。

在 ArangoDB 2.3 的早期版本中,单个文档 INSERT 的语法是:

INSERT { value: 1 } IN collection 

无法检索刚刚插入的文档的系统属性(_key_rev)。从 2.4 开始,以下也是可能的:

INSERT { value: 1 } IN collection LET result = NEW RETURN result

以上返回创建的文档,包括指定的属性(value在上述情况下)和系统属性。

它也适用于多文档插入,例如以下查询

FOR i IN 1..10 
  INSERT { value: i } IN collection

可以变成

FOR i IN 1..10 
  INSERT { value: i } IN collection LET result = NEW RETURN result

返回所有插入的文档。

于 2015-02-05T20:29:23.827 回答
2

遗憾的是,目前 (2.3) 无法接收最后插入_key的 AQL 查询。

但是,您可以使用它db.<collection>.save({ Hello : "World" }):来检索最新的_key

于 2014-12-16T15:07:03.047 回答
0

退回文件

INSERT { myValue: "123", myValue2: "456" } INTO myCollection RETURN NEW

仅返回 _key

INSERT { myValue: "123", myValue2: "456" } INTO myCollection LET inserted = NEW RETURN inserted._key

于 2019-08-01T12:02:36.280 回答