【AQL】LET操作

LET operation in AQL

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 
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值