2014-10-10 35 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 

返回所有插入的文件。