【问题标题】:RethinkDB update and replace-without in one lineRethinkDB 更新和替换 - 无需一行
【发布时间】:2016-04-13 03:57:58
【问题描述】:

谁能想到一种优雅的方式将updatereplace 放在一行中?

我想使用r.row.without 删除字段并在同一查询中更新。

类似:

r.db('db').table('table').get('item_id')
          .update({ field_a:'value_a'})
          .replace(r.row.without(r.args(['field_b'])))`

简单的链接会很好,但这行不通(更新返回更改结果)。

【问题讨论】:

    标签: rethinkdb rethinkdb-javascript


    【解决方案1】:

    您也可以写.update({field_a: 'value_a', field_b: r.literal()}) 来更改一个字段并同时删除另一个字段。

    【讨论】:

    • 感谢@mlucy,很高兴知道,虽然我认为前一个更具声明性!
    • 这个答案比当前选择的正确答案更容易/可读/直接
    【解决方案2】:
    r.db('db').table('table').get('item_id')
        .replace(
            r.row.merge(
                function(doc){ 
                    return {field_a: 'newval'}
                }
            ).without('field_b')
        )
    

    应该做的伎俩

    【讨论】:

    • 感谢@Neil,工作就像一个chame!我认为你也可以在没有匿名函数的情况下做到这一点。 r.row.merge({field_a: 'newval'}).without('field_b')
    猜你喜欢
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2011-11-26
    • 2021-07-13
    • 1970-01-01
    相关资源
    最近更新 更多