更新两个文档在不同的集合在ArangoDB?



我有两个集合:users微博. 我想知道的AQL查询,允许我插入一个新的推文,并在同一时间更新从一个用户的总推文。

users集合有这样一个文档:{_key:"user1"total_tweets: 0}

tweets收藏有多个"推文"文档:{_key:"tweet1"from_user:"用户/user1"}

如何插入一条新tweet,同时更新用户中的total_tweets ?

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

然而,ArangoDB不提供触发功能。因此,要在插入新tweet后更新用户集合中total_tweets的数量,有两种解决方案:

  1. 结合"插入推文查询"更新推文计数查询"变成一个大查询,每次当你插入tweet时,执行这个大查询。
  2. 将这两个动作拆分为两个查询,在代码中逐一执行,并在执行多个查询时使用事务来确保数据库的ACID属性。

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

文档讨论了如何使用OLDNEW,但似乎没有提到更新多个集合只适用于INSERT,而不是UPSERTREPLACE(抛出"OLD set multiple times"错误)。

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

相关内容

  • 没有找到相关文章

最新更新