从csv更新ArangoDB集合

时间:2018-07-23 13:00:12

标签: arangodb

我只是ArangoDB的新手,所以您能给我一些如何执行以下更新的提示吗?

我有文档集合,每个文档都有一个属性seen。我想通过以下方式从csv文件更新现有的集合:如果文件中已经有一个与_key的行在集合中,我想将seen的值求和csv-file并从集合中获取并用总和替换集合中的值;如果没有这样的_key文档,我只想添加它。

据我所知,arangoimp工具有点太多,因为它可以选择替换或忽略重复项。

您将如何做?

如果有任何想法,我将不胜感激。

1 个答案:

答案 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()),或者在最后删除临时文档。