我在数据库中有两个名称分别为“ collection1”和“ collection2”的集合 我为两个集合中的搜索文档创建了一个名称为“ myview”的视图
两个收藏夹中都有以下文档 ->
{
"name": "Mac",
"age": 23,
"contry":"India",
"abc":true
}
如果collection2中的{“ abc”:false},则此aql查询工作正常 ->
FOR doc IN myview search doc.abc == true update doc with {"alive":true} in collection1 LET updated = OLD RETURN updated
但是在我的情况下,两个集合中的条件均为(abc == true)true 那么如何通过单个aql查询来更新多个集合中的单个或多个文档
答案 0 :(得分:0)
不确定要了解什么,但是此查询可以解决您的问题吗?
FOR doc IN myview
SEARCH doc.abc == true
UPDATE doc WITH {"alive":true} IN collection1 OPTIONS { ignoreErrors: true }
UPDATE doc with {"alive":true} IN collection2 OPTIONS { ignoreErrors: true }
LET updated = OLD
RETURN updated
OPTIONS { ignoreErrors: true }
将使查询通过,即使文档不在集合中。
答案 1 :(得分:0)
如果我们可以像这样对两个集合一一使用更新操作,那么darkheir给出的查询就可以正常工作
对于收集1->
FOR doc IN myview
SEARCH doc.abc == true
UPDATE doc WITH {"alive":true} IN collection1 OPTIONS { ignoreErrors: true }
LET updated = OLD
RETURN updated
,对于集合2->
FOR doc IN myview
SEARCH doc.abc == true
UPDATE doc WITH {"alive":true} IN collection2 OPTIONS { ignoreErrors: true }
LET updated = OLD
RETURN updated
如何在单个aql查询中查询两个集合