我知道可以这样做:
FOR user IN users
FILTER user._key == "7"
UPDATE user WITH { friends: PUSH(user.friends, "8") } IN users
但它有点冗长。我想知道是否有办法做这样的事情:
UPDATE "7" WITH { friends: PUSH(CURRENT.friends, "8") } IN users
答案 0 :(得分:0)
你是对的;当只更新一个项目时,目前没有简单的方法来处理CURRENT
文档。
可以使用DOCUMENT function再次获取原始文档:
UPDATE "7" WITH
{ friends: PUSH(DOCUMENT("user/7").friends, "8") } IN users
但是,它会获取文档两次,因此效率低于第一次查询。
您可以使用db._explain()
重新验证您的第一个查询将是单个索引访问。
I've added a feature request to track this.
使用RETURN
语法(if)更持久地将该变量命名为OLD
。