2016-05-02 9 views
1

Ich habe Dokumente wie folgt in einer Datenbank:Wie ein Feld in rethinkdb Dokumenten zu aktualisieren, basierend auf seinem alten Wert

{ 
"email": "abc1234" , 
"id": "0ff9115c-44a8-4a9e-a2c1-f6f5d2ac5219" , 
"name": "awesome dude" , 
} 

mehr Dokumente mit der obigen Form sind.

Ich möchte eine Zeichenfolge zum E-Mail-Feld hinzufügen, sagen @stackoverflow.com. Das heißt, nach dem Update sollte das obige werden:

{ 
"email": "[email protected]" , 
"id": "0ff9115c-44a8-4a9e-a2c1-f6f5d2ac5219" , 
"name": "awesome dude" , 
} 

Wie mache ich das in rethinkdb? Ich habe versucht, die folgenden Daten-Explorer:

r.db("monopolyApp").table("users").update({ 
    email2: r.row("email") + "@stackoverflow.com" 
}) 

jedoch, dass jede E-Mail-Adresse ändert:

"r.row("email")@stackoverflow.com" 

Danke.

Antwort

2

Was Sie suchen, ist die .add command.

ändern Sie Ihre Anfrage an:

r.db("monopolyApp").table("users").update({ 
    email2: r.row("email").add("@stackoverflow.com") 
}) 

Und Sie sollten eingestellt werden!

+0

Danke! Das hat funktioniert. Ich nahm an, dass 'add()' nur für numerische Prozeduren gedacht war. – Curious2learn