2016-03-28 4 views
1

Я знаю, что это можно сделать так:См документ, который в настоящее время обновляется

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

Вы правы; в настоящее время нет простого способа обратиться к документу 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 синтаксиса (если) эта переменная будет называться OLD.

Смежные вопросы