AQL :(为什么)文件功能如HAS,UNSET不起作用?

时间:2015-01-26 10:44:01

标签: arangodb aql

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

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

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

有人看到了什么问题吗?

3 个答案:

答案 0 :(得分:2)

好的,好的......写完之后我得到了它:一个人必须把它分配给某个东西。 e.g。

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

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

答案 1 :(得分:2)

AQL函数不能出现在AQL的顶层。顶级允许的唯一内容包括FORFILTERRETURNLETCOLLECTSORT,{ {1}}等 如果应该执行一个函数,则应该在INSERT语句中捕获它的返回值以进行进一步处理,或者,如果不需要进一步处理,则可以在LET s表达式中调用该函数,例如

RETURN

答案 2 :(得分:0)

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

FOR u IN users
    LIMIT 1
    LET u_new = UNSET(u, "birthday")
    REPLACE u WITH u_new IN users