You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ArangoDB执行UPDATE操作时如何为嵌套字段添加新键

错误原因
  • AQL 的 UPDATE 语句不支持直接将嵌套路径作为顶层对象键更新嵌套字段,你之前尝试的几种写法最终都会在文档顶层生成名为 p.Address.StateName 的无效键,不会修改 Address 下的嵌套属性。
正确实现语句

使用 MERGE() 函数合并原有 Address 对象和新增的 StateName 字段,既可以保留原有 Address 下的所有属性,又能新增目标键:

FOR p IN Person
    FOR a IN Area 
        FILTER p.Address.StateID == a.ID
        UPDATE p WITH {
            Address: MERGE(p.Address, { StateName: a.Name })
        } IN Person
补充优化

如果存在部分文档没有 Address 字段的场景,可以给 MERGE 传入默认空对象避免执行报错:

FOR p IN Person
    FOR a IN Area 
        FILTER p.Address.StateID == a.ID
        UPDATE p WITH {
            Address: MERGE(p.Address || {}, { StateName: a.Name })
        } IN Person

内容的提问来源于stack exchange,提问作者Ghasemi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:36:02