如何从RethinkDB文档中删除密钥?

我试图从RethinkDB文档中删除一个密钥。 我的方法(不起作用):

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

其他方法:

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

这只是设置row.key = null(看起来合理)。

通过Web UI在rethinkdb数据资源pipe理器中testing的例子。

以下是来自RethinkDB网站文档的相关示例: http ://rethinkdb.com/docs/cookbook/python/#removing-a-field-from-a-document

要从表格中的所有文档中删除一个字段,您需要使用replace来更新文档以不包含所需的字段(使用without ):

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

要从表中的特定文档中删除该字段,请执行以下操作:

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

您可以使用API​​( http://rethinkdb.com/api/ )中的任何select器(例如dbtablegetget_allbetweenfilter )来更改要更新的文档的select。

你可以使用replace

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

您不需要使用replace来更新整个文档。 这里是相关的文档: ReQL命令:文字

假设您的用户文档如下所示:

 { "id": 1, "name": "Alice", "data": { "age": 19, "city": "Dallas", "job": "Engineer" } } 

你想从数据属性中删除年龄。 通常情况下,更新只会将您的新数据与旧数据合并。 r.literal可以用来把数据对象当作一个单元来处理。

 r.table('users').get(1).update({ data: r.literal({ age: 19, job: 'Engineer' }) }).run(conn, callback) // Result passed to callback { "id": 1, "name": "Alice", "data": { "age": 19, "job": "Engineer" } } 
Interesting Posts