Arangodb 在单个AQL查询中插入和返回文档

Arangodb 在单个AQL查询中插入和返回文档,arangodb,aql,Arangodb,Aql,当我使用AQL将文档插入集合时,它返回一个空列表 arangosh [test]> db._query('INSERT @document INTO vertices', {document: {name: "bar"}}).toArray() [ ] 有没有一种方法可以插入一个文档并在单个AQL查询中返回完整的文档 我希望得到的是: { "_id": "vertices/641272433780", "_key": "641272433780", "_rev": "6412

当我使用AQL将文档插入集合时,它返回一个空列表

arangosh [test]> db._query('INSERT @document INTO vertices', {document: {name: "bar"}}).toArray()
[ ]
有没有一种方法可以插入一个文档并在单个AQL查询中返回完整的文档

我希望得到的是:

{
  "_id": "vertices/641272433780",
  "_key": "641272433780",
  "_rev": "641272433780",
  "name": "bar"
}

一旦实现了该功能,其外观将如下所示:

INSERT expression IN|INTO collection [ OPTIONS expression ] WITH NEW INTO variable RETURN variable;

REMOVE expression IN|INTO collection [ OPTIONS expression ] WITH OLD INTO variable RETURN variable;

UPDATE expression IN|INTO collection [ OPTIONS expression ] WITH OLD|NEW INTO variable RETURN variable
UPDATE expression WITH expression IN|INTO collection [ OPTIONS expression ] WITH OLD|NEW INTO variable RETURN variable

`自从ArangoDB 2.4以来,这是可能的。要返回创建的文档,请返回原始查询

INSERT @document INTO vertices
必须换成

INSERT @document INTO vertices LET result = NEW RETURN result
这也适用于多文档插入以及更新/替换和删除。以下引用描述了语法:

要从数据修改查询返回文档,INSERT、REMOVE、UPDATE或REPLACE语句后面必须紧跟一个LET语句,该语句将伪值NEW或OLD分配给用户定义的变量。LET语句后面必须跟一个RETURN语句,该语句返回LET引入的变量

新增是指插入或修改的文档修订,旧是指更新或删除之前的文档修订。INSERT语句只能引用新的伪值,而删除操作只能引用旧的伪值。“更新”和“替换”可参考其中一个


我们目前正在进行这项工作(从AQL数据修改操作返回整个文档),但该功能尚未完成。有消息的时候我可以在这里发帖。很高兴听到!是否有计划允许在子查询中进行数据修改操作?目前没有,因为这将需要对AQL进行大量更改。我想知道是否会使用
两个
伪变量来恢复旧的和新的数据…这似乎已经在ArangoDB 2.4中实现: