Nosql Can';t在ArangoDB中声明变量

Nosql Can';t在ArangoDB中声明变量,nosql,arangodb,aql,Nosql,Arangodb,Aql,我正在使用ArangoDB 3.4.6-1,希望在联机控制台中删除带有AQL(如上所述)的顶点 根据教程,在第一步中,您应该将边保存到变量中。在我的例子中,语句如下所示: LET edgeKeys = (FOR v, e, p IN 1..100 INBOUND 'Node/N3' GRAPH 'graph' RETURN e._key) 不带括号的本身返回正确的结果: [ "E3" ] 但是,使用括号运行整个语句只会引发以下错误: Query: AQL: syntax error,

我正在使用ArangoDB 3.4.6-1,希望在联机控制台中删除带有AQL(如上所述)的顶点

根据教程,在第一步中,您应该将边保存到变量中。在我的例子中,语句如下所示:

LET edgeKeys =  (FOR v, e, p IN 1..100 INBOUND 'Node/N3' GRAPH 'graph' RETURN e._key)
不带括号的本身返回正确的结果:

[
  "E3"
]
但是,使用括号运行整个语句只会引发以下错误:

Query: AQL: syntax error, unexpected end of query string near ')' at position 1:83 (while parsing)
我尝试对其他图形或其他返回值和对象使用可比较的命令,但总是得到相同的错误

到目前为止,我无法在网上找到合适的解决方案。本教程提供以下示例代码(按1:1复制):

我得到了完全相同的错误,它甚至无法检查集合。
我做错了什么?

仅用
LET
定义变量不是有效的AQL语句

从:

AQL查询必须返回结果(通过使用 RETURN关键字)或执行数据修改操作(由 使用关键字INSERT、UPDATE、REPLACE、REMOVE或 向上插入)。如果AQL解析器检测到的错误超过 同一查询中的一个数据修改操作,如果不能 弄清楚该查询是用于数据检索还是用于 修改操作

使用教程中所述的完整AQL块,执行工作与预期一样,因为在这种情况下,查询使用
REMOVE
执行数据修改。仅在
LET
变量声明中执行
RETURN
操作不足以运行AQL查询。删除
LET
操作时,查询也会工作,因为在这种情况下,AQL查询直接返回结果

完成AQL查询:

LET edgeKeys = (FOR v, e IN 1..1 ANY 'persons/eve' GRAPH 'knows_graph' RETURN e._key)
LET r = (FOR key IN edgeKeys REMOVE key IN knows) 
REMOVE 'eve' IN persons
另外一个返回值也可以使查询工作:

LET edgeKeys = (FOR v, e IN 1..1 ANY 'persons/eve' GRAPH 'knows_graph' RETURN e._key)
RETURN edgeKeys
LET edgeKeys = (FOR v, e IN 1..1 ANY 'persons/eve' GRAPH 'knows_graph' RETURN e._key)
RETURN edgeKeys