最后使用AQL在ArangoDB中插入了_key?

时间:2014-10-10 11:27:00

标签: lastinsertid arangodb aql

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

3 个答案:

答案 0 :(得分: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

返回所有插入的文档。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

返回文件

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

仅返回_key

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