ArangoDB技术咨询:如何通过_id匹配文档并向数组插入数据
向ArangoDB的posts集合文档中添加评论的AQL语句
嘿,刚接触ArangoDB的话不用慌,这个往墙贴文档里加评论的需求很好解决,咱们直接用AQL的UPDATE语句配合数组操作符就能搞定~
核心的AQL查询语句如下,完全匹配你通过_id定位文档并添加评论的需求:
UPDATE "56687" IN posts WITH { comment: PUSH(comment, { usrid: "usr45", msg: "这是一条新的评论内容", date: "2024-05-20" }) } FILTER _id == "56687" RETURN NEW
我给你拆解下每个部分的作用:
UPDATE "56687" IN posts:指定要更新posts集合里_id为"56687"的文档(小提醒:如果你的_id是ArangoDB默认的完整格式,比如posts/56687,记得把引号里的内容换成完整ID哦)PUSH(comment, 新评论对象):这是ArangoDB专门用来给数组追加元素的操作符,第一个参数是要修改的comment数组字段,第二个就是你要新增的评论结构,格式和现有评论保持一致就行FILTER _id == "56687":做一层额外过滤,确保只修改目标文档,避免误操作其他数据RETURN NEW:执行完查询后会返回修改后的完整文档,方便你快速验证评论是否成功添加
另外补充个小技巧:如果需要一次性添加多条评论,直接把PUSH的第二个参数换成评论数组就行,比如:
UPDATE "56687" IN posts WITH { comment: PUSH(comment, [ {usrid: "usr45", msg: "第一条新评论", date: "2024-05-20"}, {usrid: "usr67", msg: "第二条新评论", date: "2024-05-20"} ]) } FILTER _id == "56687" RETURN NEW
内容的提问来源于stack exchange,提问作者siva
相关产品推荐
相关产品推荐

