LET操作
你可以使用LET操作将任意值赋给一个变量
变量被引入到LET语句所在的范围内。当变量被赋值后,你不能改变它的值。
语法
LET variableName = expression
表达式可以是简单表达式或子查询。
变量名定义可以参考AQL语法
使用
变量在AQL中是不可变的,也就是说,它们不能被重新赋值:
LET a = [1, 2, 3] // initial assignment
a = PUSH(a, 4) // syntax error, unexpected identifier
LET a = PUSH(a, 4) // parsing error, variable 'a' is assigned multiple times
LET b = PUSH(a, 4) // allowed, result: [1, 2, 3, 4]
LET语句通常用于声明复杂的计算和避免重复计算相同的值在多个查询的部分。
FOR u IN users
LET numRecommendations = LENGTH(u.recommendations)
RETURN {
"user" : u,
"numRecommendations" : numRecommendations,
"isPowerUser" : numRecommendations >= 10
}
在上面的例子中,使用LET语句计算推荐数量的因子,从而避免在RETURN语句中计算两次值。
LET的另一个用例是在子查询中声明一个复杂的计算,使整个查询更具可读性。
FOR u IN users
LET friends = (
FOR f IN friends
FILTER u.id == f.userId
RETURN f
)
LET memberships = (
FOR m IN memberships
FILTER u.id == m.userId
RETURN m
)
RETURN {
"user" : u,
"friends" : friends,
"numFriends" : LENGTH(friends),
"memberShips" : memberships
}
本文介绍了AQL中的LET操作,如何使用它在查询中定义和使用变量,强调了其在避免重复计算和提升查询可读性方面的应用,尤其是在子查询和计算场景中。
1136

被折叠的 条评论
为什么被折叠?



