我尝试使用文档功能,如 HAS、UNSET 等(希望如此),就像文档中描述的那样。不幸的是,导致语法错误 1501。我还看到它们没有像其他信号词那样在 AQL 编辑器中突出显示。
这是一个例子(我也在教程服务器上测试过):
FOR u IN users
LIMIT 1
UNSET(u, "birthday")
RETURN u
有没有人看到有什么问题?
AQL 函数不能出现在 AQL 的顶层。顶层允许的唯一内容是语句,例如FOR
, FILTER
, RETURN
, LET
, COLLECT
,SORT
等INSERT
。如果应该执行一个函数,则应该在LET
语句中捕获它的返回值以进行进一步处理,或者,如果不需要进一步处理,该函数可以在RETURN
s 表达式中调用,例如
FOR u IN users
LIMIT 1
RETURN UNSET(u, "birthday")
好的,好的……写完后我明白了:必须将其分配给某物。例如
FOR u IN users
LIMIT 1
LET tmp = UNSET(u, "birthday")
RETURN tmp
很抱歉发布它......但我保留它,也许其他初学者会犯同样的错误:-)
这可能对其他用户有帮助:UNSET 函数实际上并不替换集合中的文档。为此,您需要运行
FOR u IN users
LIMIT 1
LET u_new = UNSET(u, "birthday")
REPLACE u WITH u_new IN users