我正在尝试从 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 数据浏览器上测试的示例。
我正在尝试从 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 数据浏览器上测试的示例。
以下是 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/ )中的任何选择器来更改要更新的文档的选择,例如db
, table
, get
, get_all
, 。between
filter
您可以replace
使用without
:
r.db('db').table('user').replace(r.row.without('key'))
您不需要使用替换来更新整个文档。以下是相关文档: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"
}
}
或者
r.table('users').get(1).update({ data: { city: r.literal() } }).run(conn, callback)
// Result passed to callback
{
"id": 1,
"name": "Alice",
"data": {
"age": 19,
"job": "Engineer"
}
}