我只是ArangoDB的新手,所以您能给我一些如何执行以下更新的提示吗?
我有文档集合,每个文档都有一个属性seen
。我想通过以下方式从csv文件更新现有的集合:如果文件中已经有一个与_key
的行在集合中,我想将seen
的值求和csv-file并从集合中获取并用总和替换集合中的值;如果没有这样的_key
文档,我只想添加它。
据我所知,arangoimp
工具有点太多,因为它可以选择替换或忽略重复项。
您将如何做?
如果有任何想法,我将不胜感激。
答案 0 :(得分:3)
正如您所说,arangoimp
工具的要求太多了。您可以使用它通过_key
更新现有记录,并替换seen
属性并在_key
不存在的情况下创建新文档。但是,它不支持添加会汇总可见值的逻辑。
不过,您可以将带有arangoimp
的CSV导入到临时集合中,并使用AQL查询来完成。假设temp
是该临时集合,而coll
是您的主要集合:
FOR doc IN temp
UPSERT { _key: doc._key }
INSERT doc
UPDATE { seen: OLD.seen + doc.seen }
IN coll
如果需要,可以选择使用导入的文档中的属性替换现有文档(而不是UPDATE或MERGE()),或者在最后删除临时文档。