How to remove a key from a RethinkDB document?

Robert Zaremba picture Robert Zaremba · Sep 2, 2013 · Viewed 14.5k times · Source

I'm trying to remove a key from a RethinkDB document. My approaches (which didn't work):

r.db('db').table('user').replace(function(row){delete row["key"]; return row}) 

Other approach:

r.db('db').table('user').update({key: null}) 

This one just sets row.key = null (which looks reasonable).

Examples tested on rethinkdb data explorer through web UI.

Answer

Michael Glukhovsky picture Michael Glukhovsky · Sep 2, 2013

Here's the relevant example from the documentation on RethinkDB's website: http://rethinkdb.com/docs/cookbook/python/#removing-a-field-from-a-document

To remove a field from all documents in a table, you need to use replace to update the document to not include the desired field (using without):

r.db('db').table('user').replace(r.row.without('key'))

To remove the field from one specific document in the table:

r.db('db').table('user').get('id').replace(r.row.without('key'))

You can change the selection of documents to update by using any of the selectors in the API (http://rethinkdb.com/api/), e.g. db, table, get, get_all, between, filter.