最后使用 AQL 在 ArangoDB 中插入 _key?
Posted
技术标签:
【中文标题】最后使用 AQL 在 ArangoDB 中插入 _key?【英文标题】:Last inserted _key in ArangoDB with AQL? 【发布时间】:2014-10-10 11:27:00 【问题描述】:如何使用 AQL 查询在 ArangoDB 中接收最后插入的 _key? 我将项目放在集合中,以下元素必须包含 _key 创建的元素。我如何获得这个_key?
【问题讨论】:
您指的是应该返回生成的密钥的 AQL INSERT 查询吗?或者是在前一个插入操作(在单独的查询或操作中)发生之后执行的 AQL 选择查询? @k.djonua:你还需要这个问题的帮助吗? @13abylon,不,谢谢。我正在用其他方法解决这个问题。 @k.djonua 你能写一个你如何解决这个问题的答案以供将来参考。 【参考方案1】:关于这个问题的更新: 从 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
返回所有插入的文档。
【讨论】:
【参考方案2】:遗憾的是,目前 (2.3) 无法通过 AQL 查询接收最后插入的 _key
。
但是您可以使用db.<collection>.save( Hello : "World" ):
检索最新的_key
【讨论】:
澄清一下:db._key
属性的文档。返回文件
INSERT myValue: "123", myValue2: "456" INTO myCollection RETURN NEW
只返回_key
INSERT myValue: "123", myValue2: "456" INTO myCollection LET inserted = NEW RETURN inserted._key
【讨论】:
以上是关于最后使用 AQL 在 ArangoDB 中插入 _key?的主要内容,如果未能解决你的问题,请参考以下文章