2016-03-28 4 views
1

aktualisiert wird weiß ich, dass es möglich ist, es auf diese Weise zu tun:das Dokument zu finden, die derzeit

FOR user IN users 
FILTER user._key == "7" 
UPDATE user WITH { friends: PUSH(user.friends, "8") } IN users 

Aber es ist ein wenig ausführlich. Ich frage mich, ob es eine Möglichkeit gibt, so etwas zu tun:

UPDATE "7" WITH { friends: PUSH(CURRENT.friends, "8") } IN users 

Antwort

0

Sie haben Recht; Es gibt derzeit keine einfache Möglichkeit, das Dokument CURRENT zu adressieren, wenn nur ein Element aktualisiert wird.

Man könnte die DOCUMENT function verwenden Sie das Originaldokument zu holen wieder:

UPDATE "7" WITH 
    { friends: PUSH(DOCUMENT("user/7").friends, "8") } IN users 

Es wäre jedoch das Dokument zweimal holen und damit weniger effizient als die erste Abfrage.

Sie können db._explain() verwenden, um zu revalidieren, dass Ihre erste Abfrage ein einzelner Indexzugriff sein wird.

I've added a feature request to track this.

Um mehr persistant mit der RETURN Syntax (if), dass variable OLD genannt werden sein.

Verwandte Themen