在rethinkdb中使用分支更新逻辑。我需要根据另一个值匹配更新值,然后设置适当的值。如果值相同,则应使用现有值。
r.db('testdb').table('great_table').get(1).update(source => {
return r.branch(source('some_other_id').eq(1), {read: false}, /* use existing value */);
})
尝试以下方法:
r.db('testdb').table('great_table').get(1).update(source => {
return r.branch(source('some_other_id').eq(1), {read: false}, source('checked'));
})
我尝试这个时收到的错误是:
{
"deleted": 0 ,
"errors": 1 ,
"first_error": "Inserted value must be an OBJECT (got BOOL): false" ,
"inserted": 0 ,
"replaced": 0 ,
"skipped": 0 ,
"unchanged": 0
}
答案 0 :(得分:1)
在您的查询中,您试图将bool
传递给Rethink期待对象的地方。
因此,您的查询应如下所示(取决于您希望保存source('checked')
值的字段):
r.db('testdb').table('great_table').get(1).update(source => {
return r.branch(source('some_other_id').eq(1), {read: false}, {read: source('checked')});
})