繁体   English   中英

更新 ArangoDB 中不同 collections 中的两个文档?

[英]Update two documents in different collections in ArangoDB?

我有两个 collections: userstweets 我想知道允许我插入新推文并同时更新用户推文总数的 AQL 查询。

users集合中有一个文档,如: { _key:"user1", total_tweets: 0 }

tweets集合中有多个“tweet”文档,例如: { _key:"tweet1", from_user:"users/user1" }

如何插入新推文并同时更新用户的 total_tweets?

INSERT到一个集合后,您可以使用NEW文档来获取该插入的结果(获取_id_key )。 然后,您可以在不同的集合上运行另一个INSERT/UPDATE/UPSERT/REPLACE 您不能两次修改同一个集合。

文档讨论了如何使用OLDNEW ,但似乎没有提到更新多个 collections 仅适用于INSERT ,而不适用于UPSERTREPLACE (引发"OLD set multiple times"错误)。

但是,如果我正确理解您的问题,您想在插入推文后更新 integer ( total_tweets )。 这是事务的领域,它是用代码处理的,而不是通过 AQL。

如果我理解正确,您期望使用 SQL 数据库的触发功能的解决方案。

但是,ArangoDB 不提供触发器功能。 因此,要在插入新推文后更新用户集合中的 total_tweets 数量,有两种解决方案。

  1. 将 and 组合成一个大查询,每次插入推文时,执行这个大查询。
  2. 将这两个动作分成两个查询,在代码中一一执行,并在执行多个查询时使用事务来保证数据库的ACID属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM