2014-10-10 36 views
4

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

+0

您是否指的是应返回生成的密钥的AQL INSERT查询?或者在上一次插入操作(在单独的查询或操作中)之后执行的AQL select查询发生了吗? – stj 2014-10-10 13:03:45

+0

@ k.djonua:你还需要这个问题的帮助吗? – 13abylon 2014-11-03 13:35:12

+0

@ 13abylon,不,谢谢。我用其他方法解决了这个问题。 – jonua 2014-11-03 16:04:59

回答

2

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

但是你可以用db.<collection>.save({ Hello : "World" }):检索关于这个问题的最新_key

+0

澄清:db。 .save返回一个具有'_key'属性的文档。 – moonglum 2014-12-16 15:21:26

+0

从2.4开始,这是可能的。所以,如果你至少使用了ArangoDB 2.4,那就忽略我的答案,然后看看stj的答案 – 13abylon 2015-02-06 14:09:00

9

更新: 由于ArangoDB 2.4就可以检索刚插入的文件(或文件),甚至用AQL查询。

随着ArangoDB 2.3以前的版本中,对于单个文档中插入的语法是:

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 

返回所有插入的文件。