AQL(ArangoDB)FOR循环作用域问题:如何让INSERT仅执行一次
AQL循环作用域问题解决方法
原查询中INSERT {title: "c"} INTO collection_2执行两次的核心原因是:AQL的FOR循环默认仅将紧跟的第一条语句作为循环体,后续语句会跟随循环的每一次迭代重复执行。你之前尝试的大括号方法未生效,大概率是语法格式有误。
修正后的正确写法:
LET array = [{title: "a"},{title: "b"}] FOR item IN array { INSERT item INTO collection_1 } INSERT {title: "c"} INTO collection_2
关键说明
- 用
{}明确包裹FOR循环的执行体后,只有INSERT item INTO collection_1会在循环内重复执行两次。 - 循环外的
INSERT {title: "c"} INTO collection_2只会在整个FOR循环执行完成后运行一次,确保目标对象仅插入一次。
内容的提问来源于stack exchange,提问作者kvdmolen
相关产品推荐
相关产品推荐

