从 csv 更新 ArangoDB 集合

Updating the ArangoDB collection from csv

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

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

据我所知,对于 arangoimp 工具来说有点过分了,因为它可以选择替换或忽略重复项。

你会怎么做?

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

正如您所说,arangoimp 工具的要求太高了。您可以使用它通过 _key 更新现有记录并替换 seen 属性并在 _key 尚不存在的情况下创建新文档。但它不支持添加对所见值求和的逻辑。

但是,您可以将带有 arangoimp 的 CSV 文件导入临时文件 collection,然后使用 AQL 查询来执行此操作。让 temp 成为临时 collection 和 coll 你的主要 collection:

FOR doc IN temp
  UPSERT { _key: doc._key }
  INSERT doc
  UPDATE { seen: OLD.seen + doc.seen }
  IN coll

如果需要,您可以选择用导入文档的属性替换而不是更新或合并 () 现有文档,或者在最后删除临时文档。