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