1

我尝试使用文档功能,如 HAS、UNSET 等(希望如此),就像文档中描述的那样。不幸的是,导致语法错误 1501。我还看到它们没有像其他信号词那样在 AQL 编辑器中突出显示。

这是一个例子(我也在教程服务器上测试过):

FOR u IN users
    LIMIT 1
    UNSET(u, "birthday")
RETURN u

有没有人看到有什么问题?

4

3 回答 3

2

AQL 函数不能出现在 AQL 的顶层。顶层允许的唯一内容是语句,例如FOR, FILTER, RETURN, LET, COLLECT,SORTINSERT。如果应该执行一个函数,则应该在LET语句中捕获它的返回值以进行进一步处理,或者,如果不需要进一步处理,该函数可以在RETURNs 表达式中调用,例如

FOR u IN users
  LIMIT 1
  RETURN UNSET(u, "birthday")
于 2015-01-26T12:33:00.053 回答
2

好的,好的……写完后我明白了:必须将其分配给某物。例如

FOR u IN users
    LIMIT 1
    LET tmp = UNSET(u, "birthday")
RETURN tmp

很抱歉发布它......但我保留它,也许其他初学者会犯同样的错误:-)

于 2015-01-26T10:47:25.280 回答
0

这可能对其他用户有帮助:UNSET 函数实际上并不替换集合中的文档。为此,您需要运行

FOR u IN users
    LIMIT 1
    LET u_new = UNSET(u, "birthday")
    REPLACE u WITH u_new IN users
于 2017-10-09T12:33:56.097 回答